diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 63243744c..9b0c263a2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -278,7 +278,6 @@ Matthew Warman Matthew Watson Matthew Yanos Matthias Bhend -Michael Barker Michael Bayne Michael Clarke Michael Davey diff --git a/WHATSNEW b/WHATSNEW index c2c3da6af..4253d63c6 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -27,11 +27,6 @@ Fixed bugs: an incorrect compression level for a zip entry. This is now fixed. Bugzilla Report 62686 - * A filesystem "loop" caused due to symbolic links could trigger an - out of memory error in the org.apache.tools.ant.DirectoryScanner - This has now been fixed. - Bugzilla Report 62849 - Other changes: -------------- * generatekey task now supports SubjectAlternativeName during key diff --git a/contributors.xml b/contributors.xml index 3c95e6e01..ebf03ee77 100644 --- a/contributors.xml +++ b/contributors.xml @@ -1155,10 +1155,6 @@ Matthias Bhend - - Michael - Barker - Michael Bayne diff --git a/src/etc/testcases/core/directoryscanner.xml b/src/etc/testcases/core/directoryscanner.xml index 71eb88bf7..7e8683a4a 100644 --- a/src/etc/testcases/core/directoryscanner.xml +++ b/src/etc/testcases/core/directoryscanner.xml @@ -38,9 +38,4 @@ - - - - - diff --git a/src/main/org/apache/tools/ant/DirectoryScanner.java b/src/main/org/apache/tools/ant/DirectoryScanner.java index 289239b78..71465dbc3 100644 --- a/src/main/org/apache/tools/ant/DirectoryScanner.java +++ b/src/main/org/apache/tools/ant/DirectoryScanner.java @@ -1237,18 +1237,6 @@ public class DirectoryScanner final String name = vpath + newFile; final TokenizedPath newPath = new TokenizedPath(path, newFile); final File file = new File(dir, newFile); - - try { - // check if it's a filesystem "loop" due to symbolic links - if (FileUtils.getFileUtils().isLeadingPath(file.getAbsoluteFile(), - dir.getAbsoluteFile(), true)) { - continue; - } - } catch (IOException e) { - System.err.println("Failed to determine if " + file + " causes a " + - "filesystem loop due to symbolic link; continuing"); - } - final String[] children = file.list(); if (children == null || (children.length == 0 && file.isFile())) { if (isIncluded(newPath)) { diff --git a/src/main/org/apache/tools/ant/taskdefs/Delete.java b/src/main/org/apache/tools/ant/taskdefs/Delete.java index bf810e869..7686d460d 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Delete.java +++ b/src/main/org/apache/tools/ant/taskdefs/Delete.java @@ -815,19 +815,7 @@ public class Delete extends MatchingTask { } for (String s : list) { File f = new File(d, s); - - boolean isFsLoop = false; - - try { - isFsLoop = Files.isSymbolicLink(f.toPath()) && - FileUtils.getFileUtils().isLeadingPath(f.getAbsoluteFile(), - d.getAbsoluteFile(), true); - } catch (IOException e) { - log("Failed to check if " + f + " causes a filesystem loop due to " + - "symbolic link; continuing"); - } - - if (f.isDirectory() && !isFsLoop) { + if (f.isDirectory()) { removeDir(f); } else { log("Deleting " + f.getAbsolutePath(), quiet ? Project.MSG_VERBOSE : verbosity); diff --git a/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java b/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java index e332a9c83..6dab26c11 100644 --- a/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java +++ b/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java @@ -130,20 +130,6 @@ public class DirectoryScannerTest { new String[] {"alpha/beta/gamma"}); } - @Test - public void testAllowRecursiveSymlinks() { - - assumeTrue("Current system does not support Symlinks", supportsSymlinks); - - buildRule.getProject().executeTarget("symlink-nested-setup"); - DirectoryScanner ds = new DirectoryScanner(); - ds.setBasedir(new File(buildRule.getProject().getProperty("output"))); - ds.setIncludes(new String[] {"alpha/beta/gamma/"}); - ds.scan(); - compareFiles(ds, new String[] {"alpha/beta/gamma/gamma.xml"}, - new String[] {"alpha/beta/gamma"}); - } - @Test public void testProhibitSymlinks() { assumeTrue("Current system does not support Symlinks", supportsSymlinks);