You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2016/03/29 11:24:17 UTC

[4/4] ant git commit: try-with-resource for AntClassLoader

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 <bo...@apache.org>
Authored: Tue Mar 29 11:23:45 2016 +0200
Committer: Stefan Bodewig <bo...@apache.org>
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();
-            }
         }
     }