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 1a9161e8b..4df063861 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 @@ -654,6 +654,7 @@ public class JUnitTask extends Task { testLists.addAll(executeOrQueue(tests.elements(), forkPerTest)); } + try { Iterator iter = testLists.iterator(); while (iter.hasNext()) { List l = (List) iter.next(); @@ -663,6 +664,11 @@ public class JUnitTask extends Task { execute(l); } } + } finally { + if (classLoader != null && reloading) { + classLoader.cleanup(); + } + } } /** @@ -1091,6 +1097,9 @@ public class JUnitTask extends Task { } if (classLoader != null) { classLoader.resetThreadContextLoader(); + if (!reloading) { + classLoader.cleanup(); + } } } }