jkf 2005/07/16 05:23:48
Modified: src/main/org/apache/tools/ant/taskdefs/optional/junit
JUnitTask.java
Log:
PR: 35750
Make sure the classLoader is always cleaned up before getting a new one.
Revision Changes Path
1.119 +16 -8
ant/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
Index: JUnitTask.java
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -r1.118 -r1.119
--- JUnitTask.java 8 Jul 2005 13:46:38 -0000 1.118
+++ JUnitTask.java 16 Jul 2005 12:23:48 -0000 1.119
@@ -671,10 +671,7 @@
}
}
} finally {
- if (classLoader != null && reloading) {
- classLoader.cleanup();
- }
- classLoader = null;
+ deleteClassLoader();
}
}
@@ -1112,9 +1109,6 @@
}
if (classLoader != null) {
classLoader.resetThreadContextLoader();
- if (!reloading) {
- classLoader.cleanup();
- }
}
}
}
@@ -1273,7 +1267,7 @@
*/
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 @@
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 @@
}
}
}
+
+ /**
+ * Removes a classloader if needed.
+ * @since Ant 1.7
+ */
+ private void deleteClassLoader()
+ {
+ if (classLoader != null)
+ {
+ classLoader.cleanup();
+ classLoader = null;
+ }
+ }
/**
* @since Ant 1.6.2
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]