remm        01/08/28 11:12:37

  Modified:    catalina/src/share/org/apache/catalina/loader
                        WebappClassLoader.java
  Log:
  - Sync before calling defineClass. Appears to fix bug 3107, and should also
    help similar CL problems where two threads simultaneously try to load the same
    class.
  
  Revision  Changes    Path
  1.13      +8 -6      
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
  
  Index: WebappClassLoader.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- WebappClassLoader.java    2001/07/31 00:30:28     1.12
  +++ WebappClassLoader.java    2001/08/28 18:12:37     1.13
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
 1.12 2001/07/31 00:30:28 remm Exp $
  - * $Revision: 1.12 $
  - * $Date: 2001/07/31 00:30:28 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
 1.13 2001/08/28 18:12:37 remm Exp $
  + * $Revision: 1.13 $
  + * $Date: 2001/08/28 18:12:37 $
    *
    * ====================================================================
    *
  @@ -123,7 +123,7 @@
    *
    * @author Remy Maucherat
    * @author Craig R. McClanahan
  - * @version $Revision: 1.12 $ $Date: 2001/07/31 00:30:28 $
  + * @version $Revision: 1.13 $ $Date: 2001/08/28 18:12:37 $
    */
   public class WebappClassLoader
       extends URLClassLoader
  @@ -1481,8 +1481,10 @@
   
           }
   
  -        clazz = defineClass(name, entry.binaryContent, 0,
  -                            entry.binaryContent.length, codeSource);
  +        synchronized(this) {
  +            clazz = defineClass(name, entry.binaryContent, 0,
  +                                entry.binaryContent.length, codeSource);
  +        }
   
           entry.loadedClass = clazz;
   
  
  
  

Reply via email to