You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Freeman Fang (JIRA)" <ji...@apache.org> on 2008/09/20 17:32:52 UTC

[jira] Issue Comment Edited: (SM-1588) JmsConsumerEndpointTest always hang on some linux box

    [ https://issues.apache.org/activemq/browse/SM-1588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=45840#action_45840 ] 

ffang edited comment on SM-1588 at 9/20/08 8:31 AM:
-----------------------------------------------------------

the root cause of this problem is that if we use org.springframework.jms.listener.DefaultMessageListenerContainer
the code to shutdown the listener cause the hang
                      synchronized (this.lifecycleMonitor) {
				while (this.activeInvokerCount > 0) {
					if (logger.isDebugEnabled()) {
						logger.debug("Still waiting for shutdown of " + this.activeInvokerCount +
								" message listener invokers");
					}
					this.lifecycleMonitor.wait();
				}
                                //missing notifyAll() here
			}

we should ensure activeInvokerCount is 0 when shutdown the listener, which means we code run into the AsyncMessageListenerInvoker when receive jms message,  we shouldn't shutdown the listener, should be more time for the listener to process the message, so just put sleep(500) for the testcase when use DefaultMessageListenerContainer before the tearDown() should be fine
Besides that, the shutdown code in DefaultMessageListenerContainer is incorrect IMHO, there should be lifecycleMonitor.notifyAll() after "while"

      was (Author: ffang):
    the root cause of this problem is that if we use org.springframework.jms.listener.DefaultMessageListenerContainer
the code to shutdown the listener cause the hang
                      synchronized (this.lifecycleMonitor) {
				while (this.activeInvokerCount > 0) {
					if (logger.isDebugEnabled()) {
						logger.debug("Still waiting for shutdown of " + this.activeInvokerCount +
								" message listener invokers");
					}
					this.lifecycleMonitor.wait();
				}
			}

we should ensure activeInvokerCount is 0 when shutdown the listener, which means we code run into the AsyncMessageListenerInvoker when receive jms message,  we shouldn't shutdown the listener, should be more time for the listener to process the message, so just put sleep(500) for the testcase when use DefaultMessageListenerContainer before the tearDown() should be fine
  
> JmsConsumerEndpointTest always hang on some linux box
> -----------------------------------------------------
>
>                 Key: SM-1588
>                 URL: https://issues.apache.org/activemq/browse/SM-1588
>             Project: ServiceMix
>          Issue Type: Bug
>            Reporter: Freeman Fang
>            Assignee: Freeman Fang
>             Fix For: 3.3
>
>
> dump the thread when this test hang
> Full thread dump Java HotSpot(TM) Server VM (1.5.0_15-b04 mixed mode):
> "Thread-12" prio=1 tid=0x09102100 nid=0x3190 runnable [0x69bac000..0x69bad030]
>         at java.io.FileInputStream.readBytes(Native Method)
>         at java.io.FileInputStream.read(FileInputStream.java:194)
>         at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
>         at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
>         at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
>         - locked <0xad27ab10> (a java.io.InputStreamReader)
>         at java.io.InputStreamReader.read(InputStreamReader.java:167)
>         at java.io.BufferedReader.fill(BufferedReader.java:136)
>         at java.io.BufferedReader.readLine(BufferedReader.java:299)
>         - locked <0xad27ab10> (a java.io.InputStreamReader)
>         at java.io.BufferedReader.readLine(BufferedReader.java:362)
>         at org.codehaus.plexus.util.cli.StreamPumper.run(StreamPumper.java:139)
> "Thread-11" prio=1 tid=0x085a9b28 nid=0x318f runnable [0x6c65a000..0x6c65afb0]
>         at java.io.FileInputStream.readBytes(Native Method)
>         at java.io.FileInputStream.read(FileInputStream.java:194)
>         at java.io.BufferedInputStream.read1(BufferedInputStream.java:254)
>         at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
>         - locked <0xaeb8cf70> (a java.io.BufferedInputStream)
>         at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
>         at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
>         at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
>         - locked <0xad278028> (a java.io.InputStreamReader)
>         at java.io.InputStreamReader.read(InputStreamReader.java:167)
>         at java.io.BufferedReader.fill(BufferedReader.java:136)
>         at java.io.BufferedReader.readLine(BufferedReader.java:299)
>         - locked <0xad278028> (a java.io.InputStreamReader)
>         at java.io.BufferedReader.readLine(BufferedReader.java:362)
>         at org.codehaus.plexus.util.cli.StreamPumper.run(StreamPumper.java:152)
> "process reaper" daemon prio=1 tid=0x089bf2f8 nid=0x318d runnable [0x699fe000..0x699fef30]
>         at java.lang.UNIXProcess.waitForProcessExit(Native Method)
>         at java.lang.UNIXProcess.access$900(UNIXProcess.java:20)
>         at java.lang.UNIXProcess$1$1.run(UNIXProcess.java:132)
> "Low Memory Detector" daemon prio=1 tid=0x08111200 nid=0x3031 runnable [0x00000000..0x00000000]
> "CompilerThread1" daemon prio=1 tid=0x0810fd80 nid=0x3030 waiting on condition [0x00000000..0x6cb1d258]
> "CompilerThread0" daemon prio=1 tid=0x0810ed28 nid=0x302f waiting on condition [0x00000000..0x6cb9e1d8]
> "AdapterThread" daemon prio=1 tid=0x0810dc00 nid=0x302e waiting on condition [0x00000000..0x00000000]
> "Signal Dispatcher" daemon prio=1 tid=0x0810cd80 nid=0x302d runnable [0x00000000..0x00000000]
> "Finalizer" daemon prio=1 tid=0x08102910 nid=0x302c in Object.wait() [0x6cf21000..0x6cf21e30]
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x715a5dc0> (a java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:120)
>         - locked <0x715a5dc0> (a java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:136)
>         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
> "Reference Handler" daemon prio=1 tid=0x081023d0 nid=0x302b in Object.wait() [0x6cfa3000..0x6cfa31b0]
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x71563c20> (a java.lang.ref.Reference$Lock)
>         at java.lang.Object.wait(Object.java:474)
>         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
>         - locked <0x71563c20> (a java.lang.ref.Reference$Lock)
> "main" prio=1 tid=0x0805cc50 nid=0x3023 in Object.wait() [0xbfffc000..0xbfffcf38]
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0xad2778f0> (a java.lang.UNIXProcess)
>         at java.lang.Object.wait(Object.java:474)
>         at java.lang.UNIXProcess.waitFor(UNIXProcess.java:165)
>         - locked <0xad2778f0> (a java.lang.UNIXProcess)
>         at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:98)
>         at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:60)
>         at org.apache.maven.surefire.booter.SurefireBooter.fork(SurefireBooter.java:588)
>         at org.apache.maven.surefire.booter.SurefireBooter.forkSuite(SurefireBooter.java:442)
>         at org.apache.maven.surefire.booter.SurefireBooter.runSuitesForkPerTestSet(SurefireBooter.java:364)
>         at org.apache.maven.surefire.booter.SurefireBooter.run(SurefireBooter.java:221)
>         at org.apache.maven.plugin.surefire.SurefirePlugin.execute(SurefirePlugin.java:427)
>         at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
>         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:585)
>         at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>         at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>         at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> "VM Thread" prio=1 tid=0x080ffe90 nid=0x302a runnable
> "GC task thread#0 (ParallelGC)" prio=1 tid=0x08076c58 nid=0x3028 runnable
> "GC task thread#1 (ParallelGC)" prio=1 tid=0x080778a8 nid=0x3029 runnable
> "VM Periodic Task Thread" prio=1 tid=0x0806e1f8 nid=0x3032 waiting on condition
> Full thread dump Java HotSpot(TM) Server VM (1.5.0_15-b04 mixed mode):
> "QueueThread:queue://destination" daemon prio=1 tid=0x08b453d0 nid=0x320f waiting on condition [0x8a2f0000..0x8a2f1030]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "pool-services.registry-thread-4" prio=1 tid=0x08b15000 nid=0x320c waiting on condition [0x8a97d000..0x8a97dfb0]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:341)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "DefaultMessageListenerContainer-1" prio=1 tid=0x08af6c50 nid=0x320b in Object.wait() [0x8a473000..0x8a473e30]
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0xaed321b8> (a org.apache.servicemix.jbi.messaging.InOnlyImpl)
>         at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.waitForExchange(DeliveryChannelImpl.java:699)
>         at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:472)
>         - locked <0xaed321b8> (a org.apache.servicemix.jbi.messaging.InOnlyImpl)
>         at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.sendSync(EndpointDeliveryChannel.java:115)
>         at org.apache.servicemix.common.endpoints.SimpleEndpoint.sendSync(SimpleEndpoint.java:70)
>         at org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:468)
>         at org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint$1.onMessage(JmsConsumerEndpoint.java:373)
>         at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:506)
>         at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:463)
>         at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435)
>         at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:322)
>         at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:240)
>         at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:944)
>         at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:868)
>         at java.lang.Thread.run(Thread.java:595)
> "pool-services.registry-thread-3" prio=1 tid=0x08a132a0 nid=0x320a waiting on condition [0x8a3f2000..0x8a3f2eb0]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:341)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "pool-services.registry-thread-2" prio=1 tid=0x08b4cc20 nid=0x3209 waiting on condition [0x8a4f4000..0x8a4f5130]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:341)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "pool-services.registry-thread-1" prio=1 tid=0x08a1c410 nid=0x3208 waiting on condition [0x8ac62000..0x8ac631b0]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:341)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "ActiveMQ Connection Worker: vm://localhost#22" daemon prio=1 tid=0x08b51008 nid=0x3207 waiting on condition [0x8a5f6000..0x8a5f7030]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "ActiveMQ Connection Worker: vm://localhost#18" daemon prio=1 tid=0x08b47770 nid=0x31ee waiting on condition [0x8a9fe000..0x8a9ff0b0]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "ActiveMQ Connection Worker: vm://localhost#14" daemon prio=1 tid=0x08b46a50 nid=0x31df waiting on condition [0x8abe1000..0x8abe2030]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "ActiveMQ Connection Worker: vm://localhost#10" daemon prio=1 tid=0x08a12e48 nid=0x31cc waiting on condition [0x8a8fc000..0x8a8fcfb0]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "ActiveMQ Connection Worker: vm://localhost#6" daemon prio=1 tid=0x08b4e670 nid=0x31bc waiting on condition [0x8afe9000..0x8afe9fb0]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "ActiveMQ Connection Worker: vm://localhost#2" daemon prio=1 tid=0x0874fb90 nid=0x31ad waiting on condition [0x8ace3000..0x8ace3f30]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841)
>         at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
>         at java.lang.Thread.run(Thread.java:595)
> "Low Memory Detector" daemon prio=1 tid=0x081117c0 nid=0x319a runnable [0x00000000..0x00000000]
> "CompilerThread1" daemon prio=1 tid=0x08110340 nid=0x3199 waiting on condition [0x00000000..0x8cd010d8]
> "CompilerThread0" daemon prio=1 tid=0x0810f2e8 nid=0x3198 waiting on condition [0x00000000..0x8cd82358]
> "AdapterThread" daemon prio=1 tid=0x0810e1c0 nid=0x3197 waiting on condition [0x00000000..0x00000000]
> "Signal Dispatcher" daemon prio=1 tid=0x0810d328 nid=0x3196 waiting on condition [0x00000000..0x00000000]
> "Finalizer" daemon prio=1 tid=0x08102fa0 nid=0x3195 in Object.wait() [0x8d105000..0x8d1060b0]
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x91633668> (a java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:120)
>         - locked <0x91633668> (a java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:136)
>         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
> "Reference Handler" daemon prio=1 tid=0x08102a60 nid=0x3194 in Object.wait() [0x8d186000..0x8d186f30]
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0x915aa5d0> (a java.lang.ref.Reference$Lock)
>         at java.lang.Object.wait(Object.java:474)
>         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
>         - locked <0x915aa5d0> (a java.lang.ref.Reference$Lock)
> "main" prio=1 tid=0x0805d2e8 nid=0x318e in Object.wait() [0xbfffb000..0xbfffcc88]
>         at java.lang.Object.wait(Native Method)
>         - waiting on <0xaecd9048> (a java.lang.Object)
>         at java.lang.Object.wait(Object.java:474)
>         at org.springframework.jms.listener.DefaultMessageListenerContainer.doShutdown(DefaultMessageListenerContainer.java:489)
>         - locked <0xaecd9048> (a java.lang.Object)
>         at org.springframework.jms.listener.AbstractJmsListeningContainer.shutdown(AbstractJmsListeningContainer.java:211)
>         at org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint.deactivate(JmsConsumerEndpoint.java:391)
>         - locked <0xaecd15e8> (a org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint)
>         at org.apache.servicemix.common.DefaultServiceUnit.shutDown(DefaultServiceUnit.java:126)
>         - locked <0xaecd1430> (a org.apache.servicemix.common.xbean.XBeanServiceUnit)
>         at org.apache.servicemix.common.xbean.XBeanServiceUnit.shutDown(XBeanServiceUnit.java:42)
>         at org.apache.servicemix.common.DefaultComponent.doShutDown(DefaultComponent.java:374)
>         at org.apache.servicemix.common.AsyncBaseLifeCycle.shutDown(AsyncBaseLifeCycle.java:251)
>         at org.apache.servicemix.common.SyncLifeCycleWrapper.shutDown(SyncLifeCycleWrapper.java:48)
>         at org.apache.servicemix.jbi.framework.ComponentMBeanImpl.doShutDown(ComponentMBeanImpl.java:339)
>         at org.apache.servicemix.jbi.framework.ComponentRegistry.shutDown(ComponentRegistry.java:106)
>         - locked <0xaec84080> (a org.apache.servicemix.jbi.framework.ComponentRegistry)
>         at org.apache.servicemix.jbi.framework.Registry.shutDown(Registry.java:151)
>         at org.apache.servicemix.jbi.container.JBIContainer.shutDown(JBIContainer.java:689)
>         at org.apache.servicemix.jms.AbstractJmsTestSupport.tearDown(AbstractJmsTestSupport.java:56)
>         at junit.framework.TestCase.runBare(TestCase.java:130)
>         at junit.framework.TestResult$1.protect(TestResult.java:106)
>         at junit.framework.TestResult.runProtected(TestResult.java:124)
>         at junit.framework.TestResult.run(TestResult.java:109)
>         at junit.framework.TestCase.run(TestCase.java:118)
>         at junit.framework.TestSuite.runTest(TestSuite.java:208)
>         at junit.framework.TestSuite.run(TestSuite.java:203)
>         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:585)
>         at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
>         at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
>         at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:163)
>         at org.apache.maven.surefire.Surefire.run(Surefire.java:84)
>         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:585)
>         at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:261)
>         at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:875)
> "VM Thread" prio=1 tid=0x08100520 nid=0x3193 runnable
> "GC task thread#0 (ParallelGC)" prio=1 tid=0x080772f0 nid=0x3191 runnable
> "GC task thread#1 (ParallelGC)" prio=1 tid=0x08077f40 nid=0x3192 runnable
> "VM Periodic Task Thread" prio=1 tid=0x0806e868 nid=0x319b waiting on condition

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.