remm        2002/08/14 13:12:54

  Modified:    catalina/src/share/org/apache/catalina/loader
                        WebappClassLoader.java
  Log:
  - Port patch for bug 11307, as it has been confirmed to fix the problem.
  - Prevent possible deadlock scenario.
  
  Revision  Changes    Path
  1.4       +16 -14    
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
  
  Index: WebappClassLoader.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WebappClassLoader.java    7 Aug 2002 15:00:36 -0000       1.3
  +++ WebappClassLoader.java    14 Aug 2002 20:12:54 -0000      1.4
  @@ -1654,18 +1654,20 @@
   
           }
   
  -        synchronized (entry) {
  -            // Since all threads use the same ResourceEntry instance, it is
  -            // the one which will contain the class
  -            if (entry.loadedClass == null) {
  -                clazz = defineClass(name, entry.binaryContent, 0,
  -                                    entry.binaryContent.length, codeSource);
  -                entry.loadedClass = clazz;
  -            } else {
  -                clazz = entry.loadedClass;
  +        if (entry.loadedClass == null) {
  +            synchronized (this) {
  +                if (entry.loadedClass == null) {
  +                    clazz = defineClass(name, entry.binaryContent, 0,
  +                                        entry.binaryContent.length, 
  +                                        codeSource);
  +                    entry.loadedClass = clazz;
  +                } else {
  +                    clazz = entry.loadedClass;
  +                }
               }
  +        } else {
  +            clazz = entry.loadedClass;
           }
  -
   
           return clazz;
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to