From ed9d69e0374451739f394d25de65fb8bba14367f Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Mon, 6 Oct 2008 16:15:08 +0000 Subject: [PATCH] make sure closes JARs. PR 45955. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@702188 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 3 +++ .../taskdefs/optional/depend/AntAnalyzer.java | 5 ++--- .../ant/taskdefs/optional/depend/Depend.java | 17 ++++++++++------- .../taskdefs/optional/depend/depend-test.xml | 1 + 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/WHATSNEW b/WHATSNEW index b27b4c2c6..45bb2ace8 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -229,6 +229,9 @@ Fixed bugs: * could miss multi-character begin tokens in some cases. Bugzilla Report 45094. + * didn't close JARs that were part of the classpath. + Bugzilla Report 45955. + Other changes: -------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java index 1500e6880..cf415c9ed 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java @@ -26,6 +26,7 @@ import java.util.Hashtable; import java.util.Vector; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.depend.AbstractAnalyzer; /** @@ -96,9 +97,7 @@ public class AntAnalyzer extends AbstractAnalyzer { analyzedDeps.put(dependency, dependency); } } finally { - if (inStream != null) { - inStream.close(); - } + FileUtils.close(inStream); if (zipFile != null) { zipFile.close(); } diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java index 9bb866302..8f7bfc473 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java @@ -201,9 +201,7 @@ public class Depend extends MatchingTask { } } } finally { - if (in != null) { - in.close(); - } + FileUtils.close(in); } return dependencyMap; @@ -238,9 +236,7 @@ public class Depend extends MatchingTask { } } } finally { - if (pw != null) { - pw.close(); - } + FileUtils.close(pw); } } } @@ -373,7 +369,9 @@ public class Depend extends MatchingTask { if (checkPath != null) { // now determine which jars each class depends upon classpathDependencies = new Hashtable(); - AntClassLoader loader = getProject().createClassLoader(checkPath); + AntClassLoader loader = null; + try { + loader = getProject().createClassLoader(checkPath); Hashtable classpathFileCache = new Hashtable(); Object nullFileMarker = new Object(); @@ -426,6 +424,11 @@ public class Depend extends MatchingTask { } } } + } finally { + if (loader != null) { + loader.cleanup(); + } + } } // write the dependency cache to the disk diff --git a/src/tests/antunit/taskdefs/optional/depend/depend-test.xml b/src/tests/antunit/taskdefs/optional/depend/depend-test.xml index beba22c39..7f2b1e55a 100644 --- a/src/tests/antunit/taskdefs/optional/depend/depend-test.xml +++ b/src/tests/antunit/taskdefs/optional/depend/depend-test.xml @@ -61,6 +61,7 @@ public class Main { +