felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Jencks (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-3680) Exceptions in SCR using concurrent service activation/deactivation
Date Mon, 01 Oct 2012 16:27:07 GMT

    [ https://issues.apache.org/jira/browse/FELIX-3680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13466910#comment-13466910 ] 

David Jencks commented on FELIX-3680:
-------------------------------------

Pierre,

Thanks for catching what to wait on :-), that is obviously correct.

I think the remaining problems of main bindA getService returning null and unbindA getting called twice may be related, but I don't understand how it can be happening.  Can you try putting a call to
       _scr.waitForTasksCompleted();
after the disabled latch countdown?  At first I thought perhaps some of the disabled components had not been deactivated by the time the new set are being enabled, but since all the async actions are put in a linked list and run in a single thread I'm not sure how this could happen.




                
> Exceptions in SCR using concurrent service activation/deactivation
> ------------------------------------------------------------------
>
>                 Key: FELIX-3680
>                 URL: https://issues.apache.org/jira/browse/FELIX-3680
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR)
>         Environment: linux fc16, jdk1.6.032
>            Reporter: Pierre De Rop
>         Attachments: test.scr.tgz, test_with_fwk.tgz
>
>
> This issue contains a sample code which reproduces many various exceptions, using a concurrent
> scenario, where some services are enabled/disabled concurrently.
> I did not have time to commit an integration test about these exceptions but I will try to do.
> In the meantime, I join to this issue my scenario ... 
> Before trying to make an integration test, could you please run the scenario, in order to confirm the problems, and that the scenario is valid ?
> To execute the scenario
> 1) first, since the framework is not currently using any available log service, you have to make a modification in the framework, in order to force the framework to use a log service, when displaying caught exceptions. If you don't do this, then you will get many exceptions thrown by many threads and displayed in the console; and this is then not easy to diagnose problems.
> So, in the framework, in the file src/main/java/org/apache/felix/framework/Logger.java, in method setBundleContext, just uncomment the following code, which activate the fwk log service listener:
>     protected void setSystemBundleContext(BundleContext context)
>     {
>         // TODO: Find a way to log to a log service inside the framework.
>         // The issue is that we log messages while holding framework
>         // internal locks -- hence, when a log service calls back into 
>         // the framework (e.g., by loading a class) we might deadlock. 
>         // One instance of this problem is tracked in FELIX-536.
>         // For now we just disable logging to log services inside the
>         // framework. 
>         m_context = context;
>         startListeningForLogService();
>     }
> -> this will make sure all logs caught by the framework are redirected to the log service, and I did not find any deadlock issue, as described in the comments.
> Notice that even if you don't activate the log service listener, then the Exceptions are also taking place ...
> 2) next, compile the attached concurrent scenario (it's a simple maven project).
> 3) run the framework with the following bundles:
> org.apache.felix.scr from trunk
> org.apache.felix.configadmin-1.4.0.jar
> 4) wait for about 20 seconds, then suspend the framework, and kill it (using kill -9)
> Don't do "Ctrl-C", because this might interrupt some locked threads and some exceptions might be generated because of the Ctlr-C ... So doing a "Kill -9" is better.
> 5) Then take a look at the produced "./logs.txt" file.
> scenario description:
> ===============
> here is a description of the Components used in the scenario:
> A: delayed component, enabled, depending on B,C,D,E,F
> B,C,D,E: delayed components, disabled, without any dependencies
> F: delayed component, disabled, depending on G
> G: delayed component, disabled, depending on H
> I: delayed component, disabled, depending on J
> J: delayed component, disabled, depending on K
> Main: depends on A. 
> "Main" is the main scenario component: it uses a thread pool in order to enable B,C,D,E,F,G,H,I,J,K in parallel, randomly. 
> "Main" depends on A.
> When B,C,D,E,F,G,H,I,J,K are enabled, then A becomes satisfied, provided and injected in the "Main" component.
> Once "A" is bound to "Main", then B,C,D,E,F,G,H,I,J,K are then disabled in parallel, randomly. "Main" also checks that "A" is properly unbound.
> LogService logs are written to "./logs.txt".
> So, running the test using scr 1.6.0 runs seamlessly. But with trunk we have many various exceptions.
> For example, I have noticed the three following exceptions:
> 1) we have some IllegalMontorStateException:
> =================================
> log level: 1 D=Mon Sep 24 11:07:45 CEST 2012, T=Thread-1: [F] Locking activity before IllegalMonitorStateException: 
>   obtainWriteLock failure from: ImmediateComponentManager.ungetService.1 readLocks: 0 writeLocks: 0 thread: Thread[SCR Component Actor,5,main] time: 1348477665425 Could not obtain write lock.
> log level: 1 D=Mon Sep 24 11:07:45 CEST 2012, T=Thread-1: [F] Thread dump
> ThreadId: 59 : name: pool-1-thread-30 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 58 : name: pool-1-thread-29 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 57 : name: pool-1-thread-28 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 56 : name: pool-1-thread-27 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 55 : name: pool-1-thread-26 State: BLOCKED
>   LockInfo: org.apache.felix.framework.ServiceRegistry@ae533a LockOwnerId: 15 LockOwnerName: SCR Component Actor
>   org.apache.felix.framework.ServiceRegistry.getServiceReferences(ServiceRegistry.java:204)
>   org.apache.felix.framework.Felix.getServiceReferences(Felix.java:3372)
>   org.apache.felix.framework.Felix.getAllowedServiceReferences(Felix.java:3445)
>   org.apache.felix.framework.BundleContextImpl.getServiceReferences(BundleContextImpl.java:432)
>   org.apache.felix.scr.impl.manager.DependencyManager.getFrameworkServiceReferences(DependencyManager.java:658)
>   org.apache.felix.scr.impl.manager.DependencyManager.getFrameworkServiceReferences(DependencyManager.java:634)
>   org.apache.felix.scr.impl.manager.DependencyManager.enable(DependencyManager.java:551)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enableDependencyManagers(AbstractComponentManager.java:1056)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.access$700(AbstractComponentManager.java:63)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$Disabled.enable(AbstractComponentManager.java:1440)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:625)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:358)
>   org.apache.felix.scr.impl.config.ImmediateComponentHolder.enableComponents(ImmediateComponentHolder.java:384)
>   org.apache.felix.scr.impl.BundleComponentActivator.enableComponent(BundleComponentActivator.java:395)
>   org.apache.felix.scr.impl.manager.ComponentContextImpl.enableComponent(ComponentContextImpl.java:101)
>   test.scr.Main$EnableManager$1.run(Main.java:66)
>   java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 54 : name: pool-1-thread-25 State: BLOCKED
>   LockInfo: org.apache.felix.framework.ServiceRegistry@ae533a LockOwnerId: 15 LockOwnerName: SCR Component Actor
>   org.apache.felix.framework.ServiceRegistry.getServiceReferences(ServiceRegistry.java:204)
>   org.apache.felix.framework.Felix.getServiceReferences(Felix.java:3372)
>   org.apache.felix.framework.Felix.getAllowedServiceReferences(Felix.java:3445)
>   org.apache.felix.framework.BundleContextImpl.getServiceReferences(BundleContextImpl.java:432)
>   org.apache.felix.scr.impl.manager.DependencyManager.getFrameworkServiceReferences(DependencyManager.java:658)
>   org.apache.felix.scr.impl.manager.DependencyManager.getFrameworkServiceReferences(DependencyManager.java:634)
>   org.apache.felix.scr.impl.manager.DependencyManager.enable(DependencyManager.java:551)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enableDependencyManagers(AbstractComponentManager.java:1056)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.access$700(AbstractComponentManager.java:63)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$Disabled.enable(AbstractComponentManager.java:1440)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:625)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:358)
>   org.apache.felix.scr.impl.config.ImmediateComponentHolder.enableComponents(ImmediateComponentHolder.java:384)
>   org.apache.felix.scr.impl.BundleComponentActivator.enableComponent(BundleComponentActivator.java:395)
>   org.apache.felix.scr.impl.manager.ComponentContextImpl.enableComponent(ComponentContextImpl.java:101)
>   test.scr.Main$EnableManager$1.run(Main.java:66)
>   java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 53 : name: pool-1-thread-24 State: BLOCKED
>   LockInfo: org.apache.felix.framework.ServiceRegistry@ae533a LockOwnerId: 15 LockOwnerName: SCR Component Actor
>   org.apache.felix.framework.ServiceRegistry.getServiceReferences(ServiceRegistry.java:204)
>   org.apache.felix.framework.Felix.getServiceReferences(Felix.java:3372)
>   org.apache.felix.framework.Felix.getAllowedServiceReferences(Felix.java:3445)
>   org.apache.felix.framework.BundleContextImpl.getServiceReferences(BundleContextImpl.java:432)
>   org.apache.felix.scr.impl.manager.DependencyManager.getFrameworkServiceReferences(DependencyManager.java:658)
>   org.apache.felix.scr.impl.manager.DependencyManager.getFrameworkServiceReferences(DependencyManager.java:634)
>   org.apache.felix.scr.impl.manager.DependencyManager.enable(DependencyManager.java:551)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enableDependencyManagers(AbstractComponentManager.java:1056)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.access$700(AbstractComponentManager.java:63)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$Disabled.enable(AbstractComponentManager.java:1440)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:625)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:358)
>   org.apache.felix.scr.impl.config.ImmediateComponentHolder.enableComponents(ImmediateComponentHolder.java:384)
>   org.apache.felix.scr.impl.BundleComponentActivator.enableComponent(BundleComponentActivator.java:395)
>   org.apache.felix.scr.impl.manager.ComponentContextImpl.enableComponent(ComponentContextImpl.java:101)
>   test.scr.Main$EnableManager$1.run(Main.java:66)
>   java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 52 : name: pool-1-thread-23 State: BLOCKED
>   LockInfo: org.apache.felix.framework.ServiceRegistry@ae533a LockOwnerId: 15 LockOwnerName: SCR Component Actor
>   org.apache.felix.framework.ServiceRegistry.getServiceReferences(ServiceRegistry.java:204)
>   org.apache.felix.framework.Felix.getServiceReferences(Felix.java:3372)
>   org.apache.felix.framework.Felix.getAllowedServiceReferences(Felix.java:3445)
>   org.apache.felix.framework.BundleContextImpl.getServiceReferences(BundleContextImpl.java:432)
>   org.apache.felix.scr.impl.manager.DependencyManager.getFrameworkServiceReferences(DependencyManager.java:658)
>   org.apache.felix.scr.impl.manager.DependencyManager.getFrameworkServiceReferences(DependencyManager.java:634)
>   org.apache.felix.scr.impl.manager.DependencyManager.enable(DependencyManager.java:551)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enableDependencyManagers(AbstractComponentManager.java:1056)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.access$700(AbstractComponentManager.java:63)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$Disabled.enable(AbstractComponentManager.java:1440)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:625)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:358)
>   org.apache.felix.scr.impl.config.ImmediateComponentHolder.enableComponents(ImmediateComponentHolder.java:384)
>   org.apache.felix.scr.impl.BundleComponentActivator.enableComponent(BundleComponentActivator.java:395)
>   org.apache.felix.scr.impl.manager.ComponentContextImpl.enableComponent(ComponentContextImpl.java:101)
>   test.scr.Main$EnableManager$1.run(Main.java:66)
>   java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 51 : name: pool-1-thread-22 State: BLOCKED
>   LockInfo: org.apache.felix.framework.ServiceRegistry@ae533a LockOwnerId: 15 LockOwnerName: SCR Component Actor
>   org.apache.felix.framework.ServiceRegistry.getServiceReferences(ServiceRegistry.java:204)
>   org.apache.felix.framework.Felix.getServiceReferences(Felix.java:3372)
>   org.apache.felix.framework.Felix.getAllowedServiceReferences(Felix.java:3445)
>   org.apache.felix.framework.BundleContextImpl.getServiceReferences(BundleContextImpl.java:432)
>   org.apache.felix.scr.impl.manager.DependencyManager.getFrameworkServiceReferences(DependencyManager.java:658)
>   org.apache.felix.scr.impl.manager.DependencyManager.getFrameworkServiceReferences(DependencyManager.java:634)
>   org.apache.felix.scr.impl.manager.DependencyManager.enable(DependencyManager.java:551)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enableDependencyManagers(AbstractComponentManager.java:1056)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.access$700(AbstractComponentManager.java:63)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$Disabled.enable(AbstractComponentManager.java:1440)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:625)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:358)
>   org.apache.felix.scr.impl.config.ImmediateComponentHolder.enableComponents(ImmediateComponentHolder.java:384)
>   org.apache.felix.scr.impl.BundleComponentActivator.enableComponent(BundleComponentActivator.java:395)
>   org.apache.felix.scr.impl.manager.ComponentContextImpl.enableComponent(ComponentContextImpl.java:101)
>   test.scr.Main$EnableManager$1.run(Main.java:66)
>   java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 50 : name: pool-1-thread-21 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 49 : name: pool-1-thread-20 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 48 : name: pool-1-thread-19 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 47 : name: pool-1-thread-18 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 46 : name: pool-1-thread-17 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 45 : name: pool-1-thread-16 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 44 : name: pool-1-thread-15 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 43 : name: pool-1-thread-14 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 42 : name: pool-1-thread-13 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 41 : name: pool-1-thread-12 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 40 : name: pool-1-thread-11 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 28 : name: pool-1-thread-10 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 27 : name: pool-1-thread-9 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 26 : name: pool-1-thread-8 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 25 : name: pool-1-thread-7 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 24 : name: pool-1-thread-6 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 23 : name: pool-1-thread-5 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 22 : name: pool-1-thread-4 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 21 : name: pool-1-thread-3 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 20 : name: pool-1-thread-2 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 19 : name: pool-1-thread-1 State: WAITING
>   LockInfo: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15d17d7 LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
>   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 17 : name: Thread-2 State: TIMED_WAITING
>   LockInfo: java.util.concurrent.CountDownLatch$Sync@ba5bdb LockOwnerId: -1 LockOwnerName: null
>   sun.misc.Unsafe.park(Native Method)
>   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1011)
>   java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1303)
>   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:253)
>   test.scr.Main.run(Main.java:157)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 16 : name: Thread-1 State: WAITING
>   LockInfo: java.util.ArrayList@e49dcd LockOwnerId: -1 LockOwnerName: null
>   java.lang.Object.wait(Native Method)
>   java.lang.Object.wait(Object.java:485)
>   org.apache.felix.log.LogListenerThread.run(LogListenerThread.java:139)
> ThreadId: 15 : name: SCR Component Actor State: RUNNABLE
>   LockInfo: null LockOwnerId: -1 LockOwnerName: null
>   sun.management.ThreadImpl.dumpThreads0(Native Method)
>   sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:433)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.dumpThreads(AbstractComponentManager.java:294)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.logLockingInfo(AbstractComponentManager.java:240)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.releaseReadLock(AbstractComponentManager.java:222)
>   org.apache.felix.scr.impl.manager.ImmediateComponentManager.ungetService(ImmediateComponentManager.java:706)
>   org.apache.felix.framework.ServiceRegistrationImpl.ungetFactoryUnchecked(ServiceRegistrationImpl.java:349)
>   org.apache.felix.framework.ServiceRegistrationImpl.ungetService(ServiceRegistrationImpl.java:258)
>   org.apache.felix.framework.ServiceRegistry.ungetService(ServiceRegistry.java:389)
>   org.apache.felix.framework.Felix.ungetService(Felix.java:3494)
>   org.apache.felix.framework.BundleContextImpl.ungetService(BundleContextImpl.java:486)
>   org.apache.felix.scr.impl.manager.DependencyManager.ungetService(DependencyManager.java:900)
>   org.apache.felix.scr.impl.manager.DependencyManager.unbind(DependencyManager.java:1138)
>   org.apache.felix.scr.impl.manager.DependencyManager.close(DependencyManager.java:970)
>   org.apache.felix.scr.impl.manager.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:274)
>   org.apache.felix.scr.impl.manager.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:147)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$Active.ungetService(AbstractComponentManager.java:1697)
>   org.apache.felix.scr.impl.manager.ImmediateComponentManager.ungetService(ImmediateComponentManager.java:692)
>   org.apache.felix.framework.ServiceRegistrationImpl.ungetFactoryUnchecked(ServiceRegistrationImpl.java:349)
>   org.apache.felix.framework.ServiceRegistrationImpl.ungetService(ServiceRegistrationImpl.java:258)
>   org.apache.felix.framework.ServiceRegistry.ungetService(ServiceRegistry.java:389)
>   org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:158)
>   org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterComponentService(AbstractComponentManager.java:779)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$State.doDeactivate(AbstractComponentManager.java:1382)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$Satisfied.deactivate(AbstractComponentManager.java:1644)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:635)
>   org.apache.felix.scr.impl.manager.DependencyManager.serviceRemoved(DependencyManager.java:375)
>   org.apache.felix.scr.impl.manager.DependencyManager.serviceChanged(DependencyManager.java:217)
>   org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
>   org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
>   org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
>   org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4327)
>   org.apache.felix.framework.Felix.access$000(Felix.java:74)
>   org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:390)
>   org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:148)
>   org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterComponentService(AbstractComponentManager.java:779)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$State.doDeactivate(AbstractComponentManager.java:1382)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$Disabled.deactivate(AbstractComponentManager.java:1456)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:635)
>   org.apache.felix.scr.impl.manager.AbstractComponentManager$2.run(AbstractComponentManager.java:435)
>   org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:98)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 14 : name: Gogo shell State: RUNNABLE
>   LockInfo: null LockOwnerId: -1 LockOwnerName: null
>   java.io.FileInputStream.readBytes(Native Method)
>   java.io.FileInputStream.read(FileInputStream.java:220)
>   java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>   java.io.BufferedInputStream.read(BufferedInputStream.java:237)
>   org.apache.felix.gogo.runtime.threadio.ThreadInputStream.read(ThreadInputStream.java:77)
>   org.apache.felix.gogo.shell.Console.getLine(Console.java:117)
>   org.apache.felix.gogo.shell.Console.run(Console.java:53)
>   org.apache.felix.gogo.shell.Shell.console(Shell.java:203)
>   org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128)
>   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   java.lang.reflect.Method.invoke(Method.java:597)
>   org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:137)
>   org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
>   org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
>   org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
>   org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
>   org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
>   org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
>   org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
>   org.apache.felix.gogo.shell.Activator.run(Activator.java:75)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 13 : name: CM Event Dispatcher State: WAITING
>   LockInfo: java.util.LinkedList@13c0b53 LockOwnerId: -1 LockOwnerName: null
>   java.lang.Object.wait(Native Method)
>   java.lang.Object.wait(Object.java:485)
>   org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:77)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 12 : name: CM Configuration Updater State: WAITING
>   LockInfo: java.util.LinkedList@10b9279 LockOwnerId: -1 LockOwnerName: null
>   java.lang.Object.wait(Native Method)
>   java.lang.Object.wait(Object.java:485)
>   org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:77)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 11 : name: FelixStartLevel State: WAITING
>   LockInfo: java.util.ArrayList@bd6a5f LockOwnerId: -1 LockOwnerName: null
>   java.lang.Object.wait(Native Method)
>   java.lang.Object.wait(Object.java:485)
>   org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:273)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 10 : name: FelixDispatchQueue State: WAITING
>   LockInfo: java.util.ArrayList@192a848 LockOwnerId: -1 LockOwnerName: null
>   java.lang.Object.wait(Native Method)
>   java.lang.Object.wait(Object.java:485)
>   org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:1063)
>   org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
>   org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:101)
>   java.lang.Thread.run(Thread.java:662)
> ThreadId: 4 : name: Signal Dispatcher State: RUNNABLE
>   LockInfo: null LockOwnerId: -1 LockOwnerName: null
> ThreadId: 3 : name: Finalizer State: WAITING
>   LockInfo: java.lang.ref.ReferenceQueue$Lock@16614e7 LockOwnerId: -1 LockOwnerName: null
>   java.lang.Object.wait(Native Method)
>   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>   java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
> ThreadId: 2 : name: Reference Handler State: WAITING
>   LockInfo: java.lang.ref.Reference$Lock@e66f56 LockOwnerId: -1 LockOwnerName: null
>   java.lang.Object.wait(Native Method)
>   java.lang.Object.wait(Object.java:485)
>   java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
> ThreadId: 1 : name: main State: WAITING
>   LockInfo: org.apache.felix.framework.util.ThreadGate@979e8b LockOwnerId: -1 LockOwnerName: null
>   java.lang.Object.wait(Native Method)
>   org.apache.felix.framework.util.ThreadGate.await(ThreadGate.java:79)
>   org.apache.felix.framework.Felix.waitForStop(Felix.java:983)
>   org.apache.felix.main.Main.main(Main.java:299)
> log level: 1 D=Mon Sep 24 11:07:45 CEST 2012, T=Thread-1: ServiceRegistrationImpl: Error ungetting service.
> java.lang.IllegalMonitorStateException
> 	at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:363)
> 	at java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1317)
> 	at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:745)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$JLock.unlockReadLock(AbstractComponentManager.java:1895)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.releaseReadLock(AbstractComponentManager.java:218)
> 	at org.apache.felix.scr.impl.manager.ImmediateComponentManager.ungetService(ImmediateComponentManager.java:706)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.ungetFactoryUnchecked(ServiceRegistrationImpl.java:349)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.ungetService(ServiceRegistrationImpl.java:258)
> 	at org.apache.felix.framework.ServiceRegistry.ungetService(ServiceRegistry.java:389)
> 	at org.apache.felix.framework.Felix.ungetService(Felix.java:3494)
> 	at org.apache.felix.framework.BundleContextImpl.ungetService(BundleContextImpl.java:486)
> 	at org.apache.felix.scr.impl.manager.DependencyManager.ungetService(DependencyManager.java:900)
> 	at org.apache.felix.scr.impl.manager.DependencyManager.unbind(DependencyManager.java:1138)
> 	at org.apache.felix.scr.impl.manager.DependencyManager.close(DependencyManager.java:970)
> 	at org.apache.felix.scr.impl.manager.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:274)
> 	at org.apache.felix.scr.impl.manager.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:147)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$Active.ungetService(AbstractComponentManager.java:1697)
> 	at org.apache.felix.scr.impl.manager.ImmediateComponentManager.ungetService(ImmediateComponentManager.java:692)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.ungetFactoryUnchecked(ServiceRegistrationImpl.java:349)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.ungetService(ServiceRegistrationImpl.java:258)
> 	at org.apache.felix.framework.ServiceRegistry.ungetService(ServiceRegistry.java:389)
> 	at org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:158)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterComponentService(AbstractComponentManager.java:779)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$State.doDeactivate(AbstractComponentManager.java:1382)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$Satisfied.deactivate(AbstractComponentManager.java:1644)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:635)
> 	at org.apache.felix.scr.impl.manager.DependencyManager.serviceRemoved(DependencyManager.java:375)
> 	at org.apache.felix.scr.impl.manager.DependencyManager.serviceChanged(DependencyManager.java:217)
> 	at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
> 	at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
> 	at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
> 	at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4327)
> 	at org.apache.felix.framework.Felix.access$000(Felix.java:74)
> 	at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:390)
> 	at org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:148)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterComponentService(AbstractComponentManager.java:779)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$State.doDeactivate(AbstractComponentManager.java:1382)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$Disabled.deactivate(AbstractComponentManager.java:1456)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:635)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$2.run(AbstractComponentManager.java:435)
> 	at org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:98)
> 	at java.lang.Thread.run(Thread.java:662)
> 2) we also have this IllegalStateException:
> ==============================
> log level: 1 D=Mon Sep 24 11:07:45 CEST 2012, T=Thread-1: ServiceRegistrationImpl: Error ungetting service.
> java.lang.IllegalStateException: ungetServiceUnsatisfied
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$State.ungetService(AbstractComponentManager.java:1336)
> 	at org.apache.felix.scr.impl.manager.ImmediateComponentManager.ungetService(ImmediateComponentManager.java:692)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.ungetFactoryUnchecked(ServiceRegistrationImpl.java:349)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.ungetService(ServiceRegistrationImpl.java:258)
> 	at org.apache.felix.framework.ServiceRegistry.ungetService(ServiceRegistry.java:389)
> 	at org.apache.felix.framework.Felix.ungetService(Felix.java:3494)
> 	at org.apache.felix.framework.BundleContextImpl.ungetService(BundleContextImpl.java:486)
> 	at org.apache.felix.scr.impl.manager.DependencyManager.ungetService(DependencyManager.java:900)
> 	at org.apache.felix.scr.impl.manager.DependencyManager.unbind(DependencyManager.java:1138)
> 	at org.apache.felix.scr.impl.manager.DependencyManager.close(DependencyManager.java:970)
> 	at org.apache.felix.scr.impl.manager.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:274)
> 	at org.apache.felix.scr.impl.manager.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:147)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$Active.ungetService(AbstractComponentManager.java:1697)
> 	at org.apache.felix.scr.impl.manager.ImmediateComponentManager.ungetService(ImmediateComponentManager.java:692)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.ungetFactoryUnchecked(ServiceRegistrationImpl.java:349)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.ungetService(ServiceRegistrationImpl.java:258)
> 	at org.apache.felix.framework.ServiceRegistry.ungetService(ServiceRegistry.java:389)
> 	at org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:158)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterComponentService(AbstractComponentManager.java:779)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$State.doDeactivate(AbstractComponentManager.java:1382)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$Satisfied.deactivate(AbstractComponentManager.java:1644)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:635)
> 	at org.apache.felix.scr.impl.manager.DependencyManager.serviceRemoved(DependencyManager.java:375)
> 	at org.apache.felix.scr.impl.manager.DependencyManager.serviceChanged(DependencyManager.java:217)
> 	at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
> 	at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
> 	at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
> 	at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4327)
> 	at org.apache.felix.framework.Felix.access$000(Felix.java:74)
> 	at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:390)
> 	at org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:148)
> 	at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterComponentService(AbstractComponentManager.java:779)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$State.doDeactivate(AbstractComponentManager.java:1382)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$Disabled.deactivate(AbstractComponentManager.java:1456)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:635)
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager$2.run(AbstractComponentManager.java:435)
> 	at org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:98)
> 	at java.lang.Thread.run(Thread.java:662)
> 3) An exception when getting a service from a Reference:
> ==============================================
> log level: 2 D=Mon Sep 24 11:07:45 CEST 2012, T=Thread-1: [A] Could not get service from ref [test.scr.F]
> Can you please confirm that you also see these exceptions ?
> Thanks.

--
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

Mime
View raw message