try-with-resource for AntClassLoader
Project: http://git-wip-us.apache.org/repos/asf/ant/repo Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/d1736c7b Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/d1736c7b Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/d1736c7b Branch: refs/heads/master Commit: d1736c7bb7a72cd4bf9344f5b2b01b70fb87b034 Parents: 9f50f36 Author: Stefan Bodewig <[email protected]> Authored: Tue Mar 29 11:23:45 2016 +0200 Committer: Stefan Bodewig <[email protected]> Committed: Tue Mar 29 11:23:45 2016 +0200 ---------------------------------------------------------------------- .../org/apache/tools/ant/taskdefs/WhichResource.java | 13 ++++--------- .../apache/tools/ant/taskdefs/optional/ANTLR.java | 9 ++------- .../tools/ant/taskdefs/optional/depend/Depend.java | 8 +------- .../taskdefs/optional/ejb/JonasDeploymentTool.java | 9 +-------- .../tools/ant/taskdefs/optional/javacc/JavaCC.java | 15 +++++---------- .../apache/tools/ant/taskdefs/optional/jsp/JspC.java | 11 ++--------- .../ant/taskdefs/optional/jsp/compilers/JasperC.java | 8 +------- .../tools/ant/taskdefs/optional/junit/JUnitTask.java | 14 ++++---------- 8 files changed, 20 insertions(+), 67 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ant/blob/d1736c7b/src/main/org/apache/tools/ant/taskdefs/WhichResource.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/WhichResource.java b/src/main/org/apache/tools/ant/taskdefs/WhichResource.java index 3f315a8..d19918a 100644 --- a/src/main/org/apache/tools/ant/taskdefs/WhichResource.java +++ b/src/main/org/apache/tools/ant/taskdefs/WhichResource.java @@ -135,11 +135,10 @@ public class WhichResource extends Task { getProject().log("using system classpath: " + classpath, Project.MSG_DEBUG); } - AntClassLoader loader = null; - try { - loader = AntClassLoader.newAntClassLoader(getProject().getCoreLoader(), - getProject(), - classpath, false); + try (AntClassLoader loader = + AntClassLoader.newAntClassLoader(getProject().getCoreLoader(), + getProject(), + classpath, false)) { String loc = null; if (classname != null) { //convert a class name into a resource @@ -162,10 +161,6 @@ public class WhichResource extends Task { loc = url.toExternalForm(); getProject().setNewProperty(property, loc); } - } finally { - if (loader != null) { - loader.cleanup(); - } } } http://git-wip-us.apache.org/repos/asf/ant/blob/d1736c7b/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java b/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java index 605b336..2ed40e5 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java @@ -422,17 +422,12 @@ public class ANTLR extends Task { * @since Ant 1.6 */ protected boolean is272() { - AntClassLoader l = null; - try { - l = getProject().createClassLoader(commandline.getClasspath()); + try (AntClassLoader l = + getProject().createClassLoader(commandline.getClasspath())) { l.loadClass("antlr.Version"); return true; } catch (ClassNotFoundException e) { return false; - } finally { - if (l != null) { - l.cleanup(); - } } } } http://git-wip-us.apache.org/repos/asf/ant/blob/d1736c7b/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java ---------------------------------------------------------------------- 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 cc65129..ae62afe 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 @@ -379,9 +379,7 @@ public class Depend extends MatchingTask { if (checkPath != null) { // now determine which jars each class depends upon classpathDependencies = new Hashtable(); - AntClassLoader loader = null; - try { - loader = getProject().createClassLoader(checkPath); + try (AntClassLoader loader = getProject().createClassLoader(checkPath)) { Hashtable classpathFileCache = new Hashtable(); Object nullFileMarker = new Object(); @@ -443,10 +441,6 @@ public class Depend extends MatchingTask { } } } - } finally { - if (loader != null) { - loader.cleanup(); - } } } else { log("No classpath to check", Project.MSG_DEBUG); http://git-wip-us.apache.org/repos/asf/ant/blob/d1736c7b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java index 81fe805..00fd180 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/JonasDeploymentTool.java @@ -681,10 +681,7 @@ public class JonasDeploymentTool extends GenericDeploymentTool { log("Looking for GenIC class in classpath: " + classpath.toString(), Project.MSG_VERBOSE); - AntClassLoader cl = null; - - try { - cl = classpath.getProject().createClassLoader(classpath); + try (AntClassLoader cl = classpath.getProject().createClassLoader(classpath)) { try { cl.loadClass(JonasDeploymentTool.GENIC_CLASS); @@ -723,10 +720,6 @@ public class JonasDeploymentTool extends GenericDeploymentTool { + "' not found in classpath.", Project.MSG_VERBOSE); } - } finally { - if (cl != null) { - cl.cleanup(); - } } return null; } http://git-wip-us.apache.org/repos/asf/ant/blob/d1736c7b/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java b/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java index 219cc9c..bd7aba5 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JavaCC.java @@ -425,12 +425,11 @@ public class JavaCC extends Task { String packagePrefix = null; String mainClass = null; - AntClassLoader l = null; - try { - l = AntClassLoader.newAntClassLoader(null, null, - path - .concatSystemClasspath("ignore"), - true); + try (AntClassLoader l = + AntClassLoader.newAntClassLoader(null, null, + path + .concatSystemClasspath("ignore"), + true)) { String javaccClass = COM_PACKAGE + COM_JAVACC_CLASS; InputStream is = l.getResourceAsStream(javaccClass.replace('.', '/') + ".class"); @@ -498,10 +497,6 @@ public class JavaCC extends Task { throw new BuildException("unknown task type " + type); } return packagePrefix + mainClass; - } finally { - if (l != null) { - l.cleanup(); - } } } http://git-wip-us.apache.org/repos/asf/ant/blob/d1736c7b/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java b/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java index 4274bf0..9832e3e 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java @@ -439,13 +439,10 @@ public class JspC extends MatchingTask { File dest = getActualDestDir(); - AntClassLoader al = null; - try { + try (AntClassLoader al = getProject().createClassLoader(compilerClasspath)) { //bind to a compiler JspCompilerAdapter compiler = - JspCompilerAdapterFactory - .getCompiler(compilerName, this, - al = getProject().createClassLoader(compilerClasspath)); + JspCompilerAdapterFactory.getCompiler(compilerName, this, al); //if we are a webapp, hand off to the compiler, which had //better handle it @@ -514,10 +511,6 @@ public class JspC extends MatchingTask { log("all files are up to date", Project.MSG_VERBOSE); } } - } finally { - if (al != null) { - al.cleanup(); - } } } http://git-wip-us.apache.org/repos/asf/ant/blob/d1736c7b/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java b/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java index f0becac..80ed601 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java @@ -166,17 +166,11 @@ public class JasperC extends DefaultJspCompilerAdapter { * @since Ant 1.6.2 */ private boolean isTomcat5x() { - AntClassLoader l = null; - try { - l = getProject().createClassLoader(getClasspath()); + try (AntClassLoader l = getProject().createClassLoader(getClasspath())) { l.loadClass("org.apache.jasper.tagplugins.jstl.If"); return true; } catch (ClassNotFoundException e) { return false; - } finally { - if (l != null) { - l.cleanup(); - } } } } http://git-wip-us.apache.org/repos/asf/ant/blob/d1736c7b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java index 459bd3d..3c0912f 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java @@ -1360,12 +1360,10 @@ public class JUnitTask extends Task { if (!cmd.haveClasspath()) { return; } - AntClassLoader loader = null; - try { - loader = - AntClassLoader.newAntClassLoader(null, getProject(), - cmd.createClasspath(getProject()), - true); + try (AntClassLoader loader = + AntClassLoader.newAntClassLoader(null, getProject(), + cmd.createClasspath(getProject()), + true)) { final String projectResourceName = LoaderUtils.classNameToResource(Project.class.getName()); URL previous = null; @@ -1386,10 +1384,6 @@ public class JUnitTask extends Task { } catch (final Exception ex) { // Ignore exception } - } finally { - if (loader != null) { - loader.cleanup(); - } } }
