Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.3.0
-
None
-
None
Description
java.lang.AssertionError: did not received the expected JMSException at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.assertTrue(Assert.java:41) at org.apache.activemq.artemis.tests.integration.jms.server.management.JMSServerControl2Test.doCloseConnectionsForUser(JMSServerControl2Test.java:1136) at org.apache.activemq.artemis.tests.integration.jms.server.management.JMSServerControl2Test.testCloseConnectionsForUserForInVM(JMSServerControl2Test.java:143)
11:49:34,359 INFO [org.apache.activemq.artemis.core.server] #*#*# Starting test: testCloseConnectionsForUserForInVM()... #test testCloseConnectionsForUserForInVM 11:49:34,394 INFO [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=/mnt/hudson_workspace/workspace/eap-70x-artemis-project-testsuite-rhel/NATIVES/true/jdk/ibm1.8/label/EAP-RHEL7/activemq-artemis/tests/integration-tests/./target/tmp/junit2245767348249816620/journal,bindingsDirectory=/mnt/hudson_workspace/workspace/eap-70x-artemis-project-testsuite-rhel/NATIVES/true/jdk/ibm1.8/label/EAP-RHEL7/activemq-artemis/tests/integration-tests/./target/tmp/junit2245767348249816620/bindings,largeMessagesDirectory=/mnt/hudson_workspace/workspace/eap-70x-artemis-project-testsuite-rhel/NATIVES/true/jdk/ibm1.8/label/EAP-RHEL7/activemq-artemis/tests/integration-tests/./target/tmp/junit2245767348249816620/large-msg,pagingDirectory=/mnt/hudson_workspace/workspace/eap-70x-artemis-project-testsuite-rhel/NATIVES/true/jdk/ibm1.8/label/EAP-RHEL7/activemq-artemis/tests/integration-tests/./target/tmp/junit2245767348249816620/page) 11:49:34,395 INFO [org.apache.activemq.artemis.core.server] AMQ221012: Using AIO Journal 11:49:34,397 INFO [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-server]. Adding protocol support for: CORE 11:49:34,399 INFO [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-amqp-protocol]. Adding protocol support for: AMQP 11:49:34,400 INFO [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-stomp-protocol]. Adding protocol support for: STOMP 11:49:34,401 INFO [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-openwire-protocol]. Adding protocol support for: OPENWIRE 11:49:34,403 INFO [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-hornetq-protocol]. Adding protocol support for: HORNETQ 11:49:34,404 INFO [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-mqtt-protocol]. Adding protocol support for: MQTT 11:49:34,506 INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live 11:49:34,506 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 1.1.0.jboss-SNAPSHOT [nodeID=e915a1c8-3d47-11e6-a0a1-3172e2bd12af] 11:49:34,606 INFO [org.apache.activemq.artemis.core.server] AMQ221003: trying to deploy queue jms.queue.97c12b14-0a31-4cb8-a1ad-5ba0217abb5f 11:49:34,650 INFO [org.apache.activemq.artemis.core.server] AMQ221003: trying to deploy queue jms.queue.66bdf106-b409-4e3c-b70b-d9918ea812c3 11:49:34,830 WARN [org.apache.activemq.artemis.core.client] AMQ212037: Connection failure has been detected: AMQ119108: connections for user fakeUser closed by management [code=INTERNAL_ERROR] 11:49:34,830 WARN [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session e94bcd00-3d47-11e6-a0a1-3172e2bd12af 11:49:34,831 WARN [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session e94bcd00-3d47-11e6-a0a1-3172e2bd12af 11:49:34,846 WARN [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session e94f9d91-3d47-11e6-a0a1-3172e2bd12af 11:49:34,848 WARN [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session e94f9d91-3d47-11e6-a0a1-3172e2bd12af 11:49:34,853 WARN [org.apache.activemq.artemis.jms.client] AMQ122000: I''m closing a JMS connection you left open. Please make sure you close all JMS connections explicitly before letting them go out of scope! see stacktrace to find out where it was created: java.lang.Exception at org.apache.activemq.artemis.jms.client.ActiveMQConnection.<init>(ActiveMQConnection.java:155) [:] at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:750) [:] at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:233) [:] at org.apache.activemq.artemis.tests.integration.jms.server.management.JMSServerControl2Test.doCloseConnectionsForUser(JMSServerControl2Test.java:1110) [:] at org.apache.activemq.artemis.tests.integration.jms.server.management.JMSServerControl2Test.testCloseConnectionsForUserForInVM(JMSServerControl2Test.java:143) [:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0-internal] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95) [rt.jar:1.8.0-internal] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) [rt.jar:1.8.0-internal] at java.lang.reflect.Method.invoke(Method.java:508) [rt.jar:2.6 (04-27-2016)] at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) [junit-4.11.jar:] at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.11.jar:] at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) [junit-4.11.jar:] at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.11.jar:] at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) [junit-4.11.jar:] at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) [junit-4.11.jar:] at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) [junit-4.11.jar:] at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) [junit-4.11.jar:] at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) [junit-4.11.jar:] at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) [junit-4.11.jar:] at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) [junit-4.11.jar:] at org.junit.rules.RunRules.evaluate(RunRules.java:20) [junit-4.11.jar:] at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) [junit-4.11.jar:] at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) [junit-4.11.jar:] at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) [junit-4.11.jar:] at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) [junit-4.11.jar:] at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) [junit-4.11.jar:] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) [junit-4.11.jar:] at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) [junit-4.11.jar:] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) [junit-4.11.jar:] at org.junit.runners.ParentRunner.run(ParentRunner.java:309) [junit-4.11.jar:] at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) [surefire-junit4-2.18.1.jar:2.18.1] at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) [surefire-junit4-2.18.1.jar:2.18.1] at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) [surefire-junit4-2.18.1.jar:2.18.1] at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) [surefire-junit4-2.18.1.jar:2.18.1] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) [surefire-booter-2.18.1.jar:2.18.1] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) [surefire-booter-2.18.1.jar:2.18.1] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) [surefire-booter-2.18.1.jar:2.18.1]
Based on log it is clear that connection was closed by Finalizer before the failure was caused by the test itself. Since connection variable is not referenced in the code anymore, JVM concludes it can destroy the object. Especially IBM JDK does it very fast.
... Session session = connection.createSession(); MessageConsumer messageConsumer = session.createConsumer(queue); Connection connection2 = cf.createConnection(); Session session2 = connection2.createSession(); MessageConsumer messageConsumer2 = session2.createConsumer(queue2); Assert.assertEquals(2, server.getConnectionCount()); String[] remoteAddresses = control.listRemoteAddresses(); Assert.assertEquals(2, remoteAddresses.length); Assert.assertEquals(1, queueControl.getConsumerCount()); Assert.assertEquals(1, queueControl2.getConsumerCount()); final CountDownLatch exceptionLatch = new CountDownLatch(1); connection.setExceptionListener(new ExceptionListener() { @Override public void onException(final JMSException e) { exceptionLatch.countDown(); } }); ... // connection is not referenced anymore -> connection.finalize()