remm 2004/10/26 17:07:45 Modified: catalina/src/share/org/apache/catalina/loader WebappClassLoader.java Log: - Fix condition which seems to not have been properly updated after adding entry.binaryContent = null a little below. - Remove useless sync trick. - Submitted by Joe Zhou as bug 31903. Revision Changes Path 1.45 +17 -20 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.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- WebappClassLoader.java 5 Oct 2004 16:46:15 -0000 1.44 +++ WebappClassLoader.java 27 Oct 2004 00:07:45 -0000 1.45 @@ -1566,7 +1566,8 @@ entry = findResourceInternal(name, classPath); - if ((entry == null) || (entry.binaryContent == null)) + if ((entry == null) || (entry.binaryContent == null + && entry.loadedClass == null)) throw new ClassNotFoundException(name); Class clazz = entry.loadedClass; @@ -1620,26 +1621,22 @@ } - if (entry.loadedClass == null) { - synchronized (this) { - if (entry.loadedClass == null) { - clazz = defineClass(name, entry.binaryContent, 0, - entry.binaryContent.length, - codeSource); - entry.loadedClass = clazz; - entry.binaryContent = null; - entry.source = null; - entry.codeBase = null; - entry.manifest = null; - entry.certificates = null; - } else { - clazz = entry.loadedClass; - } + synchronized (this) { + if (entry.loadedClass == null) { + clazz = defineClass(name, entry.binaryContent, 0, + entry.binaryContent.length, + codeSource); + entry.loadedClass = clazz; + entry.binaryContent = null; + entry.source = null; + entry.codeBase = null; + entry.manifest = null; + entry.certificates = null; + } else { + clazz = entry.loadedClass; } - } else { - clazz = entry.loadedClass; } - + return clazz; }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]