From be09d4522b2728d1a2a32286bee75a14b2952fc5 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Fri, 19 Sep 2008 12:48:58 +0000 Subject: [PATCH] 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 --- src/main/org/apache/tools/ant/DirectoryScanner.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/org/apache/tools/ant/DirectoryScanner.java b/src/main/org/apache/tools/ant/DirectoryScanner.java index e52bd09cc..7a46f014e 100644 --- a/src/main/org/apache/tools/ant/DirectoryScanner.java +++ b/src/main/org/apache/tools/ant/DirectoryScanner.java @@ -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());