You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Clement Escoffier (JIRA)" <ji...@apache.org> on 2013/06/22 07:34:19 UTC

[jira] [Created] (FELIX-4144) Deadlock when retrieving BundleWiring and Felix is shutting down

Clement Escoffier created FELIX-4144:
----------------------------------------

             Summary: Deadlock when retrieving BundleWiring and Felix is shutting down
                 Key: FELIX-4144
                 URL: https://issues.apache.org/jira/browse/FELIX-4144
             Project: Felix
          Issue Type: Bug
          Components: Framework, iPOJO
    Affects Versions: ipojo-runtime-1.10, ipojo-runtime-1.10.1
            Reporter: Clement Escoffier


I found a deadlock when stopping Felix while the @Configuration processor is retrieving the list fo resources contained in the bundle. I'm not really sure it's related to iPOJO as we don't hold any lock when retrieving the BundleWiring.


2013-06-22 07:28:01
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.51-b01-456 mixed mode):

"RMI TCP Connection(2)-127.0.0.1" daemon prio=9 tid=7fadc1876800 nid=0x11c569000 runnable [11c568000]
   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 <7f3d591b0> (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:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- <7f3ba51c8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"JMX server connection timeout 114" daemon prio=9 tid=7fadc4101800 nid=0x11c466000 in Object.wait() [11c465000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <7f3c79780> (a [I)
	at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
	- locked <7f3c79780> (a [I)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- None

"RMI Scheduler(0)" daemon prio=9 tid=7fadc389c000 nid=0x11920b000 waiting on condition [11920a000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <7f3b8bbc8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- None

"RMI TCP Connection(1)-127.0.0.1" daemon prio=9 tid=7fadc3872800 nid=0x118e00000 runnable [118dff000]
   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 <7f3c27da0> (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:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- <7f3ba4cc8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"RMI TCP Accept-0" daemon prio=9 tid=7fadc386e800 nid=0x118618000 runnable [118617000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:439)
	- locked <7f3b91330> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:468)
	at java.net.ServerSocket.accept(ServerSocket.java:436)
	at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:34)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- None

"AWT-AppKit" daemon prio=5 tid=7fadc385e000 nid=0x7fff7b4a3180 runnable [00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Attach Listener" daemon prio=9 tid=7fadc08f6000 nid=0x11630e000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Thread-72" prio=5 tid=7fadc3823000 nid=0x11820c000 in Object.wait() [11820b000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <7f4229770> (a org.apache.felix.framework.util.ThreadGate)
	at org.apache.felix.framework.util.ThreadGate.await(ThreadGate.java:79)
	- locked <7f4229770> (a org.apache.felix.framework.util.ThreadGate)
	at org.apache.felix.framework.Felix.waitForStop(Felix.java:987)
	at org.ops4j.pax.exam.nat.internal.NativeTestContainer$Stopper.run(NativeTestContainer.java:404)

   Locked ownable synchronizers:
	- None

"FelixShutdown" prio=5 tid=7fadc280a000 nid=0x117864000 waiting for monitor entry [117863000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at org.apache.felix.framework.BundleWiringImpl.dispose(BundleWiringImpl.java:461)
	- waiting to lock <7f41cdd00> (a org.apache.felix.framework.BundleWiringImpl)
	at org.apache.felix.framework.BundleRevisionImpl.resolve(BundleRevisionImpl.java:299)
	- locked <7f41cdb58> (a org.apache.felix.framework.BundleRevisionImpl)
	at org.apache.felix.framework.BundleRevisionImpl.close(BundleRevisionImpl.java:653)
	- locked <7f41cdb58> (a org.apache.felix.framework.BundleRevisionImpl)
	at org.apache.felix.framework.BundleImpl.closeRevisions(BundleImpl.java:158)
	at org.apache.felix.framework.BundleImpl.close(BundleImpl.java:117)
	- locked <7f41cdc78> (a org.apache.felix.framework.BundleImpl)
	at org.apache.felix.framework.Felix$SystemBundleActivator.stop(Felix.java:4689)
	at org.apache.felix.framework.util.SecureAction.stopActivator(SecureAction.java:667)
	at org.apache.felix.framework.Felix.stopBundle(Felix.java:2518)
	at org.apache.felix.framework.Felix$2.run(Felix.java:948)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- None

"BundleWatcher: 1" daemon prio=5 tid=7fadc409e800 nid=0x117d09000 waiting on condition [117d08000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <7f40e5cf0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:160)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- None

"[iPOJO] pool-9-thread-1" prio=5 tid=7fadc2e5f000 nid=0x116e29000 waiting for monitor entry [116e28000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at org.apache.felix.framework.BundleRevisionImpl.getContentPath(BundleRevisionImpl.java:350)
	- waiting to lock <7f41cdb58> (a org.apache.felix.framework.BundleRevisionImpl)
	at org.apache.felix.framework.BundleWiringImpl.listResourcesInternal(BundleWiringImpl.java:871)
	at org.apache.felix.framework.BundleWiringImpl.listResources(BundleWiringImpl.java:753)
	- locked <7f41cdd00> (a org.apache.felix.framework.BundleWiringImpl)
	at org.apache.felix.ipojo.extender.internal.processor.ConfigurationProcessor.activate(ConfigurationProcessor.java:117)
	at org.apache.felix.ipojo.extender.internal.processor.ForwardingBundleProcessor.activate(ForwardingBundleProcessor.java:38)
	at org.apache.felix.ipojo.extender.internal.processor.QueuingActivationProcessor.access$001(QueuingActivationProcessor.java:31)
	at org.apache.felix.ipojo.extender.internal.processor.QueuingActivationProcessor$1.call(QueuingActivationProcessor.java:67)
	at org.apache.felix.ipojo.extender.internal.processor.QueuingActivationProcessor$1.call(QueuingActivationProcessor.java:65)
	at org.apache.felix.ipojo.extender.internal.queue.JobInfoCallable.call(JobInfoCallable.java:100)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- <7f4165040> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"BundleWatcher: 1" daemon prio=5 tid=7fadbd04a800 nid=0x11871b000 waiting on condition [11871a000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <7f4ae20b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:160)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- None

"BundleWatcher: 1" daemon prio=5 tid=7fadc1a8e800 nid=0x118515000 waiting on condition [118514000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <7f4a49030> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:160)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- None

"BundleWatcher: 1" daemon prio=5 tid=7fadc0082800 nid=0x118f5d000 waiting on condition [118f5c000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <7f4880070> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:160)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- None

"BundleWatcher: 1" daemon prio=5 tid=7fadbd087800 nid=0x118109000 waiting on condition [118108000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <7f4649240> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:160)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:680)

   Locked ownable synchronizers:
	- None

"Low Memory Detector" daemon prio=5 tid=7fadba80d800 nid=0x116822000 runnable [00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"C2 CompilerThread1" daemon prio=9 tid=7fadba80d000 nid=0x11671f000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"C2 CompilerThread0" daemon prio=9 tid=7fadba80c000 nid=0x11661c000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Signal Dispatcher" daemon prio=9 tid=7fadba80b800 nid=0x116519000 runnable [00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Surrogate Locker Thread (Concurrent GC)" daemon prio=5 tid=7fadba80a800 nid=0x116416000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Finalizer" daemon prio=8 tid=7fadbd93d800 nid=0x11620b000 in Object.wait() [11620a000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <7f44e1290> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <7f44e1290> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:171)

   Locked ownable synchronizers:
	- None

"Reference Handler" daemon prio=10 tid=7fadbd93c800 nid=0x116108000 in Object.wait() [116107000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <7f44e1278> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:485)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
	- locked <7f44e1278> (a java.lang.ref.Reference$Lock)

   Locked ownable synchronizers:
	- None

"main" prio=5 tid=7fadbd000800 nid=0x10e296000 in Object.wait() [10e294000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <7f375dca0> (a org.ops4j.pax.exam.nat.internal.NativeTestContainer$Stopper)
	at java.lang.Thread.join(Thread.java:1218)
	- locked <7f375dca0> (a org.ops4j.pax.exam.nat.internal.NativeTestContainer$Stopper)
	at org.ops4j.pax.exam.nat.internal.NativeTestContainer.stopOrAbort(NativeTestContainer.java:217)
	at org.ops4j.pax.exam.nat.internal.NativeTestContainer.stop(NativeTestContainer.java:195)
	at org.ops4j.pax.exam.spi.reactors.EagerSingleStagedReactor.tearDown(EagerSingleStagedReactor.java:118)
	at org.ops4j.pax.exam.spi.reactors.EagerSingleStagedReactor.afterClass(EagerSingleStagedReactor.java:132)
	at org.ops4j.pax.exam.spi.reactors.ReactorManager.afterClass(ReactorManager.java:436)
	at org.ops4j.pax.exam.junit.PaxExam.run(PaxExam.java:120)
	at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:115)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
	at com.sun.proxy.$Proxy0.invoke(Unknown Source)
	at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)
	at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69)

   Locked ownable synchronizers:
	- None

"VM Thread" prio=9 tid=7fadbd938000 nid=0x116005000 runnable 

"Gang worker#0 (Parallel GC Threads)" prio=9 tid=7fadbd800000 nid=0x11169c000 runnable 

"Gang worker#1 (Parallel GC Threads)" prio=9 tid=7fadbd801000 nid=0x11179f000 runnable 

"Gang worker#2 (Parallel GC Threads)" prio=9 tid=7fadbd801800 nid=0x1118a2000 runnable 

"Gang worker#3 (Parallel GC Threads)" prio=9 tid=7fadbd802000 nid=0x1119a5000 runnable 

"Gang worker#4 (Parallel GC Threads)" prio=9 tid=7fadbd802800 nid=0x111aa8000 runnable 

"Gang worker#5 (Parallel GC Threads)" prio=9 tid=7fadbd803800 nid=0x111bab000 runnable 

"Gang worker#6 (Parallel GC Threads)" prio=9 tid=7fadbd804000 nid=0x111cae000 runnable 

"Gang worker#7 (Parallel GC Threads)" prio=9 tid=7fadbd804800 nid=0x111db1000 runnable 

"Concurrent Mark-Sweep GC Thread" prio=9 tid=7fadbd8e2000 nid=0x115c7d000 runnable 
"Gang worker#0 (Parallel CMS Threads)" prio=9 tid=7fadbd8e0800 nid=0x115277000 runnable 

"Gang worker#1 (Parallel CMS Threads)" prio=9 tid=7fadbd8e1800 nid=0x11537a000 runnable 

"VM Periodic Task Thread" prio=10 tid=7fadba81f800 nid=0x116925000 waiting on condition 

"Exception Catcher Thread" prio=10 tid=7fadbd001800 nid=0x10e4c3000 runnable 
JNI global references: 1445


Found one Java-level deadlock:
=============================
"FelixShutdown":
  waiting to lock monitor 7fadba00a328 (object 7f41cdd00, a org.apache.felix.framework.BundleWiringImpl),
  which is held by "[iPOJO] pool-9-thread-1"
"[iPOJO] pool-9-thread-1":
  waiting to lock monitor 7fadbb802fe0 (object 7f41cdb58, a org.apache.felix.framework.BundleRevisionImpl),
  which is held by "FelixShutdown"

Java stack information for the threads listed above:
===================================================
"FelixShutdown":
	at org.apache.felix.framework.BundleWiringImpl.dispose(BundleWiringImpl.java:461)
	- waiting to lock <7f41cdd00> (a org.apache.felix.framework.BundleWiringImpl)
	at org.apache.felix.framework.BundleRevisionImpl.resolve(BundleRevisionImpl.java:299)
	- locked <7f41cdb58> (a org.apache.felix.framework.BundleRevisionImpl)
	at org.apache.felix.framework.BundleRevisionImpl.close(BundleRevisionImpl.java:653)
	- locked <7f41cdb58> (a org.apache.felix.framework.BundleRevisionImpl)
	at org.apache.felix.framework.BundleImpl.closeRevisions(BundleImpl.java:158)
	at org.apache.felix.framework.BundleImpl.close(BundleImpl.java:117)
	- locked <7f41cdc78> (a org.apache.felix.framework.BundleImpl)
	at org.apache.felix.framework.Felix$SystemBundleActivator.stop(Felix.java:4689)
	at org.apache.felix.framework.util.SecureAction.stopActivator(SecureAction.java:667)
	at org.apache.felix.framework.Felix.stopBundle(Felix.java:2518)
	at org.apache.felix.framework.Felix$2.run(Felix.java:948)
	at java.lang.Thread.run(Thread.java:680)
"[iPOJO] pool-9-thread-1":
	at org.apache.felix.framework.BundleRevisionImpl.getContentPath(BundleRevisionImpl.java:350)
	- waiting to lock <7f41cdb58> (a org.apache.felix.framework.BundleRevisionImpl)
	at org.apache.felix.framework.BundleWiringImpl.listResourcesInternal(BundleWiringImpl.java:871)
	at org.apache.felix.framework.BundleWiringImpl.listResources(BundleWiringImpl.java:753)
	- locked <7f41cdd00> (a org.apache.felix.framework.BundleWiringImpl)
	at org.apache.felix.ipojo.extender.internal.processor.ConfigurationProcessor.activate(ConfigurationProcessor.java:117)
	at org.apache.felix.ipojo.extender.internal.processor.ForwardingBundleProcessor.activate(ForwardingBundleProcessor.java:38)
	at org.apache.felix.ipojo.extender.internal.processor.QueuingActivationProcessor.access$001(QueuingActivationProcessor.java:31)
	at org.apache.felix.ipojo.extender.internal.processor.QueuingActivationProcessor$1.call(QueuingActivationProcessor.java:67)
	at org.apache.felix.ipojo.extender.internal.processor.QueuingActivationProcessor$1.call(QueuingActivationProcessor.java:65)
	at org.apache.felix.ipojo.extender.internal.queue.JobInfoCallable.call(JobInfoCallable.java:100)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:680)

Found 1 deadlock.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira