My impression from the problemAgain stacktrace is that there was indeed a
change in behaviour:

Thread1 does call 
        java.lang.ClassLoader.loadClassInternal() [instance CL1, no lock
obtained] 
        org.jboss.system.ServiceLibraries.loadClass() [instance SL1, no lock
obtained]
        org.jboss.system.URLCLassLoader.loadClassLocally() [instance CL1, no
lock obtained]
        java.lang.ClassLoader.loadClass() [instance CL1, lock on CL1
obtained]
        [now the class is loaded, and additional linkage happens, some other
class is needed]

Thread2 does
        java.lang.ClassLoader.loadClassInternal() [instance CL2, no lock
obtained] 
        org.jboss.system.ServiceLibraries.loadClass() [instance SL1, no lock
obtained]
        org.jboss.system.URLCLassLoader.loadClassLocally() [instance CL2, no
lock obtained, failed]
        [now the SL1 code obains the SL1.classLoaders lock]

Thread1 does now
        java.lang.ClassLoader.loadClassInternal() [instance CL1, lock on CL1
obtained]
        org.jboss.system.ServiceLibraries.loadClass() [instance SL1, lock on
CL1 obtained]
        [SL1 waits on the SL1.classLoaders lock, has lock on CL1]

Thread2 does now
        org.jboss.system.URLClassLoader.loadClassLocally() [instance CL1,
lock on SL1 obtained]
        java.lang.ClassLoader.loadClass() [instance CL1, has lock on SL1
waits for lock on CL1]

Oles changes to the ServiceLibrary should perhaps (in addition to the NOT
applied patch) now lead to a successful result (Ole, when you say no
deadlocks anymore does that mean without or WITHOUT the patch? ;-)

CGJ      
        
        

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to