Repository: activemq-artemis
Updated Branches:
refs/heads/2.6.x f2198ae5d -> 58add60c3
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)
(cherry picked from commit cb99b4a6663e631fae8048dad8ffca427fceda15)
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/34043c61
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/34043c61
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/34043c61
Branch: refs/heads/2.6.x
Commit: 34043c614845931cb3700dd1f35010e1be452b5c
Parents: f2198ae
Author: Jiri Danek <[email protected]>
Authored: Sun Jul 22 10:57:14 2018 +0200
Committer: Clebert Suconic <[email protected]>
Committed: Fri Aug 3 18:30:21 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/34043c61/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);