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]

Reply via email to