You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2018/08/03 18:11:12 UTC

[2/2] activemq-artemis git commit: NO-JIRA fix flaky test HeuristicXATest.testRecoverHeuristicCommitWithRestart

NO-JIRA fix flaky test HeuristicXATest.testRecoverHeuristicCommitWithRestart

The below error is prevented by adding Wait.assertEquals,
where Assert.assertEquals was used previously. Timeout is
set to small increments, since we rarely need to wait more
than 100 ms for the condition to become true.

java.lang.AssertionError: expected:<1> but was:<0>
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.failNotEquals(Assert.java:743)
	at org.junit.Assert.assertEquals(Assert.java:118)
	at org.junit.Assert.assertEquals(Assert.java:555)
	at org.junit.Assert.assertEquals(Assert.java:542)
	at org.apache.activemq.artemis.tests.integration.client.HeuristicXATest.doRecoverHeuristicCompletedTxWithRestart(HeuristicXATest.java:306)
	at org.apache.activemq.artemis.tests.integration.client.HeuristicXATest.testRecoverHeuristicCommitWithRestart(HeuristicXATest.java:251)


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/cb99b4a6
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/cb99b4a6
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/cb99b4a6

Branch: refs/heads/master
Commit: cb99b4a6663e631fae8048dad8ffca427fceda15
Parents: a92324b
Author: Jiri Danek <jd...@redhat.com>
Authored: Sun Jul 22 10:57:14 2018 +0200
Committer: Clebert Suconic <cl...@apache.org>
Committed: Fri Aug 3 14:11:02 2018 -0400

----------------------------------------------------------------------
 .../integration/client/HeuristicXATest.java     | 59 +++++++-------------
 1 file changed, 20 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cb99b4a6/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java
index 8f089c3..e32c014 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java
@@ -35,6 +35,7 @@ import org.apache.activemq.artemis.core.server.Queue;
 import org.apache.activemq.artemis.core.transaction.impl.XidImpl;
 import org.apache.activemq.artemis.tests.integration.management.ManagementControlHelper;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
+import org.apache.activemq.artemis.tests.util.Wait;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -138,19 +139,7 @@ public class HeuristicXATest extends ActiveMQTestBase {
       }
 
       if (isCommit) {
-         Assert.assertEquals(1, getMessageCount(((Queue) server.getPostOffice().getBinding(ADDRESS).getBindable())));
-
-         session = sf.createSession(false, false, false);
-
-         session.start();
-         ClientConsumer consumer = session.createConsumer(ADDRESS);
-         msg = consumer.receive(1000);
-         Assert.assertNotNull(msg);
-         msg.acknowledge();
-         Assert.assertEquals(body, msg.getBodyBuffer().readString());
-
-         session.commit();
-         session.close();
+         assertMessageInQueueThenReceiveAndCheckContent(server, sf);
       }
 
       Assert.assertEquals(0, getMessageCount(((Queue) server.getPostOffice().getBinding(ADDRESS).getBindable())));
@@ -213,19 +202,7 @@ public class HeuristicXATest extends ActiveMQTestBase {
       Assert.assertEquals(0, preparedTransactions.length);
 
       if (isCommit) {
-         Assert.assertEquals(1, getMessageCount(((Queue) server.getPostOffice().getBinding(ADDRESS).getBindable())));
-
-         session = sf.createSession(false, false, false);
-
-         session.start();
-         ClientConsumer consumer = session.createConsumer(ADDRESS);
-         msg = consumer.receive(1000);
-         Assert.assertNotNull(msg);
-         msg.acknowledge();
-         Assert.assertEquals(body, msg.getBodyBuffer().readString());
-
-         session.commit();
-         session.close();
+         assertMessageInQueueThenReceiveAndCheckContent(server, sf);
       }
 
       Assert.assertEquals(0, getMessageCount(((Queue) server.getPostOffice().getBinding(ADDRESS).getBindable())));
@@ -303,19 +280,7 @@ public class HeuristicXATest extends ActiveMQTestBase {
       Assert.assertEquals(0, preparedTransactions.length);
 
       if (heuristicCommit) {
-         Assert.assertEquals(1, getMessageCount(((Queue) server.getPostOffice().getBinding(ADDRESS).getBindable())));
-
-         session = sf.createSession(false, false, false);
-
-         session.start();
-         ClientConsumer consumer = session.createConsumer(ADDRESS);
-         msg = consumer.receive(1000);
-         Assert.assertNotNull(msg);
-         msg.acknowledge();
-         Assert.assertEquals(body, msg.getBodyBuffer().readString());
-
-         session.commit();
-         session.close();
+         assertMessageInQueueThenReceiveAndCheckContent(server, sf);
       }
 
       Assert.assertEquals(0, getMessageCount(((Queue) server.getPostOffice().getBinding(ADDRESS).getBindable())));
@@ -345,6 +310,22 @@ public class HeuristicXATest extends ActiveMQTestBase {
       session.close();
    }
 
+   private void assertMessageInQueueThenReceiveAndCheckContent(ActiveMQServer server, ClientSessionFactory sf) throws Exception {
+      Wait.assertEquals(1, () -> getMessageCount(((Queue) server.getPostOffice().getBinding(ADDRESS).getBindable())), 5 * 1000, 100);
+
+      ClientSession session = sf.createSession(false, false, false);
+
+      session.start();
+      ClientConsumer consumer = session.createConsumer(ADDRESS);
+      ClientMessage msg = consumer.receive(1000);
+      Assert.assertNotNull(msg);
+      msg.acknowledge();
+      Assert.assertEquals(body, msg.getBodyBuffer().readString());
+
+      session.commit();
+      session.close();
+   }
+
    @Test
    public void testForgetHeuristicCommitAndRestart() throws Exception {
       doForgetHeuristicCompletedTxAndRestart(true);