Browse Source

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
master
Jacobus Martinus Kruithof 20 years ago
parent
commit
20c7e9c7a1
1 changed files with 16 additions and 8 deletions
  1. +16
    -8
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java

+ 16
- 8
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java View File

@@ -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


Loading…
Cancel
Save