Well I don't manage to comment on jira (proxy issue I guess)
latch.await(timeout, TimeUnit.SECONDS); is wrong IMHO (no timeout
should be needed otherwise we know we'll be broken for big apps, in
particular with 30s as default, we could put 30mn if we want to keep
it).
Personally I thought fixing it more on the long term getting rid of
async part since we now can't avoid link() and rewriting what is slow
if it is - depend a lot of the app, I'll try to use a deltaspike +
spring one to test it. Async impl was mainly a lazy solution when it
was not mandatory but since JavaEE 6 it is actually mandatory so we
need to tackle it properly. It should take next week I guess maximum.
wdyt?
Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau
2014-08-08 13:48 GMT+02:00 Andy Gumbrecht <[email protected]>:
Submitted a patch to XBean that fixes the issue:
https://issues.apache.org/jira/browse/XBEAN-271
Andy.
On 07/08/2014 20:52, David Blevins wrote:
Getting a deadlock on AsynchronousInheritanceAnnotationFinder when the
interface a class implements is not in the jar being scanned.
"main" #1 prio=5 os_prio=31 tid=0x00007f98ba812000 nid=0x1903 waiting
on
condition [0x000000010862c000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000016dd4ffc8> (a
java.util.concurrent.CountDownLatch$Sync)
at
java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.
parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.
doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.
acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
at
java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
at
org.apache.xbean.finder.AsynchronousInheritanceAnnotationFinder.join(
AsynchronousInheritanceAnnotationFinder.java:111)
at
org.apache.xbean.finder.AsynchronousInheritanceAnnotat
ionFinder.findImplementations(AsynchronousInheritanceAnnotat
ionFinder.java:97)
at
org.apache.openejb.config.FinderFactory$ModuleLimitedFinder.
findImplementations(FinderFactory.java:275)
at
org.apache.tomee.catalina.OpenEJBContextConfig.
processServletContainerInitializers(OpenEJBContextConfig.java:436)
at
org.apache.catalina.startup.ContextConfig.webConfig(
ContextConfig.java:1265)
at
org.apache.tomee.catalina.OpenEJBContextConfig.webConfig(
OpenEJBContextConfig.java:363)
at
org.apache.catalina.startup.ContextConfig.configureStart(
ContextConfig.java:873)
- locked <0x0000000118d204b8> (a
org.apache.tomee.catalina.OpenEJBContextConfig)
at
org.apache.tomee.catalina.OpenEJBContextConfig.configureStart(
OpenEJBContextConfig.java:113)
at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(
ContextConfig.java:371)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(
LifecycleSupport.java:117)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(
LifecycleBase.java:90)
at
org.apache.catalina.core.StandardContext.startInternal(
StandardContext.java:5355)
- locked <0x0000000118d1f970> (a
org.apache.catalina.core.StandardContext)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
- locked <0x0000000118d1f970> (a
org.apache.catalina.core.StandardContext)
at
org.apache.catalina.core.ContainerBase.addChildInternal(
ContainerBase.java:901)
at
org.apache.catalina.core.ContainerBase.addChild(
ContainerBase.java:877)
at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
More importantly, when/why did we start using findImplementations?
-David
--
Andy Gumbrecht
http://www.tomitribe.com
[email protected]
https://twitter.com/AndyGeeDe
TomEE treibt Tomitribe! | http://tomee.apache.org