I guess the extender use multiple threads to manage the spring-dm powered bundles. The question is which thread is holding the felix lock ? I can't find it ...
On Wed, Jul 1, 2009 at 16:48, Richard S. Hall<he...@ungoverned.org> wrote: > This is odd looking. All threads are blocked doing the exact same thing. Are > they trying to parallelize this? > > The trace doesn't demonstrate why they can't continue since it doesn't > include all of the threads. > > -> richard > > On 7/1/09 10:22 AM, Charles Moulliard wrote: >> >> I have been able to reproduce the problem. This error is generated when I >> launch consecutively two refresh commands of the same bundle without >> waiting >> that the first refresh has finished. The bundle refreshed contains spring >> XML config files + services which are exposed as OSGI service >> >> Here is a trace of the thread dump : >> >> 2009-07-01 16:12:52 >> Full thread dump Java HotSpot(TM) Server VM (11.2-b01 mixed mode): >> >> "SpringOsgiExtenderThread-31" prio=6 tid=0x31e42400 nid=0xa18 in >> Object.wait() [0x33d4f000..0x33d4fd14] >> java.lang.Thread.State: WAITING (on object monitor) >> at java.lang.Object.wait(Native Method) >> at java.lang.Object.wait(Object.java:485) >> at >> org.apache.felix.framework.Felix.acquireGlobalLock(Felix.java:4343) >> - locked<0x0fea0670> (a [Ljava.lang.Object;) >> at >> org.apache.felix.framework.Felix.resolveBundles(Felix.java:3012) >> at >> org.apache.felix.framework.Felix.findBundleEntries(Felix.java:1268) >> at >> org.apache.felix.framework.BundleImpl.findEntries(BundleImpl.java:225) >> at >> >> org.springframework.osgi.io.OsgiBundleResource.getAllUrlsFromBundleSpace(OsgiBundleResource.java:485) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:182) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findPathMatchingResources(OsgiBundleResourcePatternResolver.java:562) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:167) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.getResources(AbstractOsgiBundleApplicationContext.java:425) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:177) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:176) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:142) >> at >> >> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123 >> ) >> at >> >> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$800(AbstractDelegatedExecutionApplicationConte >> xt.java:69) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$3.run(AbstractDelegatedExecutionApplicationContext.ja >> va:269) >> - locked<0x2c998110> (a java.lang.Object) >> at >> >> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.startRefresh(AbstractDelegatedExecutionApplicationCon >> text.java:247) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplica >> tionContextExecutor.java:222) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicat >> ionContextExecutor.java:175) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext. >> java:175) >> at >> >> org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) >> at java.lang.Thread.run(Thread.java:619) >> >> "SpringOsgiExtenderThread-30" prio=6 tid=0x32196c00 nid=0x988 in >> Object.wait() [0x3357f000..0x3357fd94] >> java.lang.Thread.State: BLOCKED (on object monitor) >> at java.lang.Object.wait(Native Method) >> at java.lang.Object.wait(Object.java:485) >> at >> org.apache.felix.framework.Felix.acquireGlobalLock(Felix.java:4343) >> - locked<0x0fea0670> (a [Ljava.lang.Object;) >> at >> org.apache.felix.framework.Felix.resolveBundles(Felix.java:3012) >> at >> org.apache.felix.framework.Felix.findBundleEntries(Felix.java:1268) >> at >> org.apache.felix.framework.BundleImpl.findEntries(BundleImpl.java:225) >> at >> >> org.springframework.osgi.io.OsgiBundleResource.getAllUrlsFromBundleSpace(OsgiBundleResource.java:485) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:182) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findPathMatchingResources(OsgiBundleResourcePatternResolver.java:562) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:167) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.getResources(AbstractOsgiBundleApplicationContext.java:425) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:177) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:176) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:142) >> at >> >> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123 >> ) >> at >> >> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$800(AbstractDelegatedExecutionApplicationConte >> xt.java:69) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$3.run(AbstractDelegatedExecutionApplicationContext.ja >> va:269) >> - locked<0x2c97e368> (a java.lang.Object) >> at >> >> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.startRefresh(AbstractDelegatedExecutionApplicationCon >> text.java:247) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplica >> tionContextExecutor.java:222) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicat >> ionContextExecutor.java:175) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext. >> java:175) >> at >> >> org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) >> at java.lang.Thread.run(Thread.java:619) >> >> "RMI TCP Connection(7)-172.16.10.128" daemon prio=6 tid=0x3198c400 >> nid=0xe98 >> runnable [0x3294f000..0x3294fa14] >> java.lang.Thread.State: RUNNABLE >> at java.net.SocketInputStream.socketRead0(Native Method) >> at java.net.SocketInputStream.read(SocketInputStream.java:129) >> at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) >> at java.io.BufferedInputStream.read(BufferedInputStream.java:237) >> - locked<0x2c6ad740> (a java.io.BufferedInputStream) >> at java.io.FilterInputStream.read(FilterInputStream.java:66) >> at >> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517) >> at >> >> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) >> at >> >> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >> at java.lang.Thread.run(Thread.java:619) >> >> "InactivityMonitor Async Task: >> java.util.concurrent.threadpoolexecutor$wor...@57c459" daemon prio=6 >> tid=0x324cd400 nid=0xbf0 waiting on condition [0x3 >> 34df000..0x334dfb14] >> java.lang.Thread.State: TIMED_WAITING (parking) >> at sun.misc.Unsafe.park(Native Method) >> - parking to wait for<0x10cba430> (a >> java.util.concurrent.SynchronousQueue$TransferStack) >> at >> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) >> at >> >> java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424) >> at >> >> java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323) >> at >> java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874) >> at >> >> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945) >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) >> at java.lang.Thread.run(Thread.java:619) >> >> "SpringOsgiExtenderThread-29" prio=6 tid=0x324e6c00 nid=0x8e4 in >> Object.wait() [0x332af000..0x332afb94] >> java.lang.Thread.State: BLOCKED (on object monitor) >> at java.lang.Object.wait(Native Method) >> at java.lang.Object.wait(Object.java:485) >> at >> org.apache.felix.framework.Felix.acquireGlobalLock(Felix.java:4343) >> - locked<0x0fea0670> (a [Ljava.lang.Object;) >> at >> org.apache.felix.framework.Felix.resolveBundles(Felix.java:3012) >> at >> org.apache.felix.framework.Felix.findBundleEntries(Felix.java:1268) >> at >> org.apache.felix.framework.BundleImpl.findEntries(BundleImpl.java:225) >> at >> >> org.springframework.osgi.io.OsgiBundleResource.getAllUrlsFromBundleSpace(OsgiBundleResource.java:485) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:182) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findPathMatchingResources(OsgiBundleResourcePatternResolver.java:562) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:167) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.getResources(AbstractOsgiBundleApplicationContext.java:425) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:177) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:176) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:142) >> at >> >> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123 >> ) >> at >> >> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$800(AbstractDelegatedExecutionApplicationConte >> xt.java:69) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$3.run(AbstractDelegatedExecutionApplicationContext.ja >> va:269) >> - locked<0x2e5d6ba8> (a java.lang.Object) >> at >> >> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.startRefresh(AbstractDelegatedExecutionApplicationCon >> text.java:247) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplica >> tionContextExecutor.java:222) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicat >> ionContextExecutor.java:175) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext. >> java:175) >> at >> >> org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) >> at java.lang.Thread.run(Thread.java:619) >> >> "SpringOsgiExtenderThread-28" prio=6 tid=0x3207ac00 nid=0xfe4 in >> Object.wait() [0x333ef000..0x333efc14] >> java.lang.Thread.State: BLOCKED (on object monitor) >> at java.lang.Object.wait(Native Method) >> at java.lang.Object.wait(Object.java:485) >> at >> org.apache.felix.framework.Felix.acquireGlobalLock(Felix.java:4343) >> - locked<0x0fea0670> (a [Ljava.lang.Object;) >> at >> org.apache.felix.framework.Felix.resolveBundles(Felix.java:3012) >> at >> org.apache.felix.framework.Felix.findBundleEntries(Felix.java:1268) >> at >> org.apache.felix.framework.BundleImpl.findEntries(BundleImpl.java:225) >> at >> >> org.springframework.osgi.io.OsgiBundleResource.getAllUrlsFromBundleSpace(OsgiBundleResource.java:485) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:182) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findPathMatchingResources(OsgiBundleResourcePatternResolver.java:562) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:167) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.getResources(AbstractOsgiBundleApplicationContext.java:425) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:177) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:176) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:142) >> at >> >> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123 >> ) >> at >> >> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$800(AbstractDelegatedExecutionApplicationConte >> xt.java:69) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$3.run(AbstractDelegatedExecutionApplicationContext.ja >> va:269) >> - locked<0x2e5d7e70> (a java.lang.Object) >> at >> >> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.startRefresh(AbstractDelegatedExecutionApplicationCon >> text.java:247) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplica >> tionContextExecutor.java:222) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicat >> ionContextExecutor.java:175) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext. >> java:175) >> at >> >> org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) >> at java.lang.Thread.run(Thread.java:619) >> >> "SpringOsgiExtenderThread-27" prio=6 tid=0x312cc400 nid=0xa74 in >> Object.wait() [0x328af000..0x328afd14] >> java.lang.Thread.State: BLOCKED (on object monitor) >> at java.lang.Object.wait(Native Method) >> at java.lang.Object.wait(Object.java:485) >> at >> org.apache.felix.framework.Felix.acquireGlobalLock(Felix.java:4343) >> - locked<0x0fea0670> (a [Ljava.lang.Object;) >> at >> org.apache.felix.framework.Felix.resolveBundles(Felix.java:3012) >> at >> org.apache.felix.framework.Felix.findBundleEntries(Felix.java:1268) >> at >> org.apache.felix.framework.BundleImpl.findEntries(BundleImpl.java:225) >> at >> >> org.springframework.osgi.io.OsgiBundleResource.getAllUrlsFromBundleSpace(OsgiBundleResource.java:485) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:182) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findPathMatchingResources(OsgiBundleResourcePatternResolver.java:562) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:167) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.getResources(AbstractOsgiBundleApplicationContext.java:425) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:177) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:176) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:142) >> at >> >> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123 >> ) >> at >> >> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$800(AbstractDelegatedExecutionApplicationConte >> xt.java:69) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$3.run(AbstractDelegatedExecutionApplicationContext.ja >> va:269) >> - locked<0x2e5dbbf0> (a java.lang.Object) >> at >> >> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.startRefresh(AbstractDelegatedExecutionApplicationCon >> text.java:247) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplica >> tionContextExecutor.java:222) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicat >> ionContextExecutor.java:175) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext. >> java:175) >> at >> >> org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) >> at java.lang.Thread.run(Thread.java:619) >> >> "SpringOsgiExtenderThread-26" prio=6 tid=0x3256a400 nid=0x6b8 in >> Object.wait() [0x32a3f000..0x32a3fd94] >> java.lang.Thread.State: BLOCKED (on object monitor) >> at java.lang.Object.wait(Native Method) >> at java.lang.Object.wait(Object.java:485) >> at >> org.apache.felix.framework.Felix.acquireGlobalLock(Felix.java:4343) >> - locked<0x0fea0670> (a [Ljava.lang.Object;) >> at >> org.apache.felix.framework.Felix.resolveBundles(Felix.java:3012) >> at >> org.apache.felix.framework.Felix.findBundleEntries(Felix.java:1268) >> at >> org.apache.felix.framework.BundleImpl.findEntries(BundleImpl.java:225) >> at >> >> org.springframework.osgi.io.OsgiBundleResource.getAllUrlsFromBundleSpace(OsgiBundleResource.java:485) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:182) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findPathMatchingResources(OsgiBundleResourcePatternResolver.java:562) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.findResources(OsgiBundleResourcePatternResolver.java:167) >> at >> >> org.springframework.osgi.io.OsgiBundleResourcePatternResolver.getResources(OsgiBundleResourcePatternResolver.java:197) >> at >> >> org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.getResources(AbstractOsgiBundleApplicationContext.java:425) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:177) >> at >> >> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:176) >> at >> >> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:142) >> at >> >> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123 >> ) >> at >> >> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$800(AbstractDelegatedExecutionApplicationConte >> xt.java:69) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$3.run(AbstractDelegatedExecutionApplicationContext.ja >> va:269) >> - locked<0x2e5e0520> (a java.lang.Object) >> at >> >> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.startRefresh(AbstractDelegatedExecutionApplicationCon >> text.java:247) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplica >> tionContextExecutor.java:222) >> at >> >> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicat >> ionContextExecutor.java:175) >> at >> >> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext. >> java:175) >> at >> >> org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718) >> at java.lang.Thread.run(Thread.java:619) >> >> Regards, >> >> Charles Moulliard >> Senior Enterprise Architect >> Apache Camel Committer >> >> ***************************** >> blog : http://cmoulliard.blogspot.com >> >> >> On Tue, Jun 30, 2009 at 1:42 PM, Guillaume Nodet<gno...@gmail.com> wrote: >> >> >>> >>> Could you grab a thread dump of the vm when the shutdown is waiting ? >>> There must be a deadlock somewhere but without any thread dump, it's >>> kinda impossible to see what happen. >>> >>> On Tue, Jun 30, 2009 at 13:25, Charles Moulliard<cmoulli...@gmail.com> >>> wrote: >>> >>>> >>>> Hi, >>>> >>>> When Camel tries to stop one of its context, the following message is >>>> displayed in the log: >>>> >>>> 13:10:59,213 | INFO | Timer-2 | DefaultCamelContext >>>> >>> >>> | >>> >>>> >>>> e.camel.impl.DefaultCamelContext 965 | Apache Camel 2.0-SNAPSHOT >>>> (CamelContext:InToOut) is stopping >>>> 13:11:00,244 | INFO | Timer-2 | DefaultCamelContext >>>> >>> >>> | >>> >>>> >>>> e.camel.impl.DefaultCamelContext 975 | Apache Camel 2.0-SNAPSHOT >>>> (CamelContext:InToOut) stopped >>>> 13:11:00,244 | INFO | Timer-2 | DefaultCamelContext >>>> >>> >>> | >>> >>>> >>>> e.camel.impl.DefaultCamelContext 965 | Apache Camel 2.0-SNAPSHOT >>>> (CamelContext:OutToIn) is stopping >>>> *13:11:09,181 | ERROR | Thread-47 | RunnableTimedExecution >>>> | oncurrent.RunnableTimedExecution 109 | Closing runnable for context >>>> OsgiBundleXmlApplicationContext(bundle=com.xpectis.x3s.x3s-core, >>>> config=osgibundle:/META-INF/spring/*.xml) did not finish in 10000ms; >>>> consider taking a snapshot and then shutdown the VM in case the thread >>>> >>> >>> still >>> >>>> >>>> hangs >>>> 13:11:19,181 | ERROR | Thread-47 | RunnableTimedExecution >>>> >>> >>> | >>> >>>> >>>> oncurrent.RunnableTimedExecution 109 | Closing runnable for context >>>> OsgiBundleXmlApplicationContext(bundle=com.xpectis.x3s.x3s-service, >>>> config=osgibundle:/META-INF/spring/*.xml) did not finish in 10000ms; >>>> consider taking a snapshot and then shutdown the VM in case the thread >>>> >>> >>> still >>> >>>> >>>> hangs* >>>> >>>> It seems to be related to the following Spring DM error : >>>> http://jira.springframework.org/browse/OSGI-611 but I use Spring OSGI >>>> >>> >>> 1.2 >>> >>>> >>>> and the error is still there >>>> >>>> Does anybody knows how to solve this ? >>>> >>>> Regards, >>>> >>>> Charles Moulliard >>>> Senior Enterprise Architect >>>> Apache Camel Committer >>>> >>>> ***************************** >>>> blog : http://cmoulliard.blogspot.com >>>> >>>> >>> >>> -- >>> Cheers, >>> Guillaume Nodet >>> ------------------------ >>> Blog: http://gnodet.blogspot.com/ >>> ------------------------ >>> Open Source SOA >>> http://fusesource.com >>> >>> >> >> > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ Open Source SOA http://fusesource.com