From 20c7e9c7a1a4f6c2ecfc41883e9a7f1b8da2f8d0 Mon Sep 17 00:00:00 2001 From: Jacobus Martinus Kruithof Date: Sat, 16 Jul 2005 12:23:48 +0000 Subject: [PATCH] PR: 35750 Make sure the classLoader is always cleaned up before getting a new one. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@278465 13f79535-47bb-0310-9956-ffa450edef68 --- .../taskdefs/optional/junit/JUnitTask.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) 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 f2a41f1b0..73c7d65a1 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 @@ -671,10 +671,7 @@ public class JUnitTask extends Task { } } } finally { - if (classLoader != null && reloading) { - classLoader.cleanup(); - } - classLoader = null; + deleteClassLoader(); } } @@ -1112,9 +1109,6 @@ public class JUnitTask extends Task { } if (classLoader != null) { classLoader.resetThreadContextLoader(); - if (!reloading) { - classLoader.cleanup(); - } } } } @@ -1273,7 +1267,7 @@ public class JUnitTask extends Task { */ private void logVmExit(FormatterElement[] feArray, JUnitTest test, String message) { - createClassLoader(); + createClassLoader(); test.setCounts(1, 0, 1); test.setProperties(getProject().getProperties()); for (int i = 0; i < feArray.length; i++) { @@ -1330,6 +1324,7 @@ public class JUnitTask extends Task { Path userClasspath = getCommandline().getClasspath(); if (userClasspath != null) { if (reloading || classLoader == null) { + deleteClassLoader(); Path classpath = (Path) userClasspath.clone(); if (includeAntRuntime) { log("Implicitly adding " + antRuntimeClasses @@ -1352,6 +1347,19 @@ public class JUnitTask extends Task { } } } + + /** + * Removes a classloader if needed. + * @since Ant 1.7 + */ + private void deleteClassLoader() + { + if (classLoader != null) + { + classLoader.cleanup(); + classLoader = null; + } + } /** * @since Ant 1.6.2