On 7/1/09 11:05 AM, Guillaume Nodet wrote:
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 ...

As I mentioned, not all threads are shown. For example, the the PackageAdmin thread for refreshing is not shown, nor is the Start Level thread.

My guess is the PackageAdmin thread has the global lock, but it is not clear why it isn't making progress.

-> richard

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





Reply via email to