Java deadlock between aop AspectManager and beans Introspector
Issue
- JBoss stalls with a deadlock between the aop AspectManager and java beans Introspector, for example:
"Thread-12":
at java.beans.Introspector.getBeanInfo(Introspector.java:157)
- waiting to lock <0x0000000400d9e870> (a java.lang.Object)
at org.jboss.aop.advice.GenericAspectFactory.configureInstance(GenericAspectFactory.java:223)
at org.jboss.aop.advice.GenericAspectFactory.createPerVM(GenericAspectFactory.java:147)
at org.jboss.aop.AspectManager.createPerVmAspect(AspectManager.java:2052)
- locked <0x00000006d7b9c0b0> (a org.jboss.aop.advice.AspectDefinition)
at org.jboss.aop.AspectManager.getPerVMAspect(AspectManager.java:2028)
- locked <0x00000006d7b9c0b0> (a org.jboss.aop.advice.AspectDefinition)
at org.jboss.aop.AspectManager.getPerVMAspect(AspectManager.java:2011)
at org.jboss.aop.advice.PerVmAdvice.generateOptimized(PerVmAdvice.java:51)
- locked <0x00000003f4949dc0> (a java.lang.Class for org.jboss.aop.advice.PerVmAdvice)
at org.jboss.aop.advice.AdviceFactory.create(AdviceFactory.java:106)
at org.jboss.aop.Advisor.createInterceptorChain(Advisor.java:1328)
at org.jboss.aop.Advisor.pointcutResolved(Advisor.java:1942)
at org.jboss.aop.MethodMatchInfo.applyBinding(MethodMatchInfo.java:152)
at org.jboss.aop.MethodMatchInfo.simplePopulateBindings(MethodMatchInfo.java:113)
at org.jboss.aop.MethodMatchInfo.populateBindings(MethodMatchInfo.java:96)
at org.jboss.aop.Advisor.finalizeMethodChain(Advisor.java:1553)
at org.jboss.aop.ClassAdvisor.finalizeChains(ClassAdvisor.java:741)
at org.jboss.aop.ClassAdvisor.doRebuildInterceptorsForAddedBinding(ClassAdvisor.java:1163)
at org.jboss.aop.ClassAdvisor$RebuildInterceptorsAction$2.rebuildInterceptorsForAddedBinding(ClassAdvisor.java:2367)
at org.jboss.aop.ClassAdvisor.rebuildInterceptorsForAddedBinding(ClassAdvisor.java:1141)
at org.jboss.aop.Advisor.newBindingAdded(Advisor.java:1134)
- locked <0x00000007487bcde0> (a org.jboss.aop.ClassAdvisor)
at org.jboss.aop.AspectManager.updateAdvisorsForAddedBinding(AspectManager.java:1530)
- locked <0x00000004012d09b0> (a java.util.WeakHashMap)
at org.jboss.aop.AspectManager.addBinding(AspectManager.java:1491)
- locked <0x00000004012d09b0> (a java.util.WeakHashMap)
at org.jboss.aop.AspectXmlLoader.deployBinding(AspectXmlLoader.java:292)
...
"main":
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000004013f1bd8> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:941)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1261)
at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:677)
at org.jboss.aop.util.AOPLock.lockRead(AOPLock.java:40)
at org.jboss.aop.AspectManager.translate(AspectManager.java:1060)
at org.jboss.aop.AspectManager.transform(AspectManager.java:1023)
at org.jboss.aop.standalone.AOPTransformer.aspectTransform(AOPTransformer.java:87)
at org.jboss.aop.standalone.AOPTransformer.transform(AOPTransformer.java:75)
at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:48)
at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:637)
at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:596)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:595)
...
at java.lang.Class.getMethods(Class.java:1446)
at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1282)
- locked <0x0000000400d9e870> (a java.lang.Object)
at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1156)
at java.beans.Introspector.getBeanInfo(Introspector.java:406)
at java.beans.Introspector.getBeanInfo(Introspector.java:165)
Environment
- JBoss Enterprise Application Platform (EAP) 5.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.