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]