https://issues.apache.org/bugzilla/show_bug.cgi?id=48694
pmones...@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED | --- Comment #5 from pmones...@gmail.com 2010-03-13 01:29:56 UTC --- In fact the deadlock still exists in 6.0.26. Under certain conditions (well using jrebel) I get: Name: Thread-8 State: BLOCKED on java.lang.str...@1d6ebede owned by: Thread-10 Total blocked: 44 Total waited: 2 Stack trace: org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1395) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) Name: Thread-10 State: BLOCKED on org.apache.catalina.loader.webappclassloa...@646f72d4 owned by: Thread-8 Total blocked: 33 Total waited: 2 Stack trace: org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) At line 1395 replacing synchronized (name.intern()) { with synchronized (this) fixes the problem. The issue with doing synchronized (name.intern()) { in public Class loadClass(String name, boolean resolve) is that it turn this method calls (at least from what I could see) at line 1485 findClass(String name) AND public Class findClass(String name) at line 977 calls protected Class findClassInternal(String name) which syncs on name.intern() -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org