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;