DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=33743>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=33743 Summary: WebappClassLoader race condition Product: Tomcat 5 Version: 5.0.28 Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: Catalina AssignedTo: tomcat-dev@jakarta.apache.org ReportedBy: [EMAIL PROTECTED] CC: [EMAIL PROTECTED] WebAppClassLoader may fail if concurrent threads try to load a not-yet-loaded class. Scenario: two threads enter loadClass(name, resolve) (line 1214) concurrently. none of them finds a loaded class, so both enter findClass (827) and findClassInternal (1559). Now one thread goes ahead, finds the resource and defines the class. Consequently, it sets entry.binaryContent to null (1633). Thread 2 now checks binaryContent for null (1572) and throws a ClassNotFoundException. In the field, this error occurs, if you start Tomcat and load a number of different jsps concurrently that all use the same tag class. I also have a standalone testcase where I made WCL#addRepository(String,File) public. As it seems, #loadClass(String, boolean) (1211) should be synchronized, as in the superclasses. Matthias -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]