PS: for jaxrs too we need impl (recent): org.apache.openejb.config.AnnotationDeployer#findRestClasses
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 7:24 GMT+02:00 Romain Manni-Bucau <[email protected]>: > BTW the interface in parent is not enough to reproduce > > > 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 7:16 GMT+02:00 Romain Manni-Bucau <[email protected]>: >> 2014-08-08 2:22 GMT+02:00 David Blevins <[email protected]>: >>> >>> >>> On Aug 7, 2014, at 12:03 PM, Romain Manni-Bucau <[email protected]> >>> wrote: >>> >>>> not sure I see the link between scanning and the fact it is not in the >>>> same jar right now. >>> >>> I can only verify that adding the interface to the application (instead of >>> in the parent classloader) fixed the problem. Was on/off like a light >>> switch. >>> >> >> I'll try to have a look >> >>>> About when? when we aligned on JAXRS spec so surely 1.6 or 1.5. >>> >>> I see the multithreaded/asynchronous stuff was added in October. If you >>> can post some performance data that shows its worth, that'd be excellent. >>> Something like this: >>> >>> - >>> http://mail-archives.apache.org/mod_mbox/openejb-dev/201204.mbox/%[email protected]%3E >>> >> >> Don't have details anymore byt was 500ms/4s about for my test app >> >>> Specifically, what JAX-RS functionality would we lose not using >>> findImplementations? Last performance measurements I did, it doubled our >>> scan time and wasn't required to pass the TCK. >>> >>> >> >> Sorry was Servlet (too late answer ;)). @HandleTypes basically. We >> have to support it by default and scanning it lazily just was making >> us ridiculous. >> >> Think it is time to really write this part of scanning in xbean... >> >> >>> -David >>> >>> >>>> 2014-08-07 20:52 GMT+02:00 David Blevins <[email protected]>: >>>>> 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.AsynchronousInheritanceAnnotationFinder.findImplementations(AsynchronousInheritanceAnnotationFinder.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 >>>>> >>>
