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

Reply via email to