Browse Source

no need to clone a linked list to iterate through it

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@697073 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 17 years ago
parent
commit
be09d4522b
1 changed files with 5 additions and 4 deletions
  1. +5
    -4
      src/main/org/apache/tools/ant/DirectoryScanner.java

+ 5
- 4
src/main/org/apache/tools/ant/DirectoryScanner.java View File

@@ -1785,20 +1785,21 @@ public class DirectoryScanner
private boolean causesIllegalSymlinkLoop(String dirName, File parent,
LinkedList directoryNamesFollowed) {
try {
if (CollectionUtils.frequency(directoryNamesFollowed, dirName)
if (directoryNamesFollowed.size() >= maxLevelsOfSymlinks
&& CollectionUtils.frequency(directoryNamesFollowed, dirName)
>= maxLevelsOfSymlinks
&& FILE_UTILS.isSymbolicLink(parent, dirName)) {

LinkedList s = (LinkedList) directoryNamesFollowed.clone();
ArrayList files = new ArrayList();
File f = FILE_UTILS.resolveFile(parent, dirName);
String target = f.getCanonicalPath();
files.add(target);

String relPath = "";
while (s.size() > 0) {
for (Iterator i = directoryNamesFollowed.iterator();
i.hasNext(); ) {
relPath += "../";
String dir = (String) s.removeFirst();
String dir = (String) i.next();
if (dirName.equals(dir)) {
f = FILE_UTILS.resolveFile(parent, relPath + dir);
files.add(f.getCanonicalPath());


Loading…
Cancel
Save