You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2021/07/09 11:41:35 UTC

[activemq-artemis] branch main updated: ARTEMIS-3372 - ensure test verification happens after expected failover event such that expected message is not tracked as a duplicate

This is an automated email from the ASF dual-hosted git repository.

gtully pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new 3961fd1  ARTEMIS-3372 - ensure test verification happens after expected failover event such that expected message is not tracked as a duplicate
3961fd1 is described below

commit 3961fd1cf2837a43fc245cddbbaf4a5f81a4f8f8
Author: gtully <ga...@gmail.com>
AuthorDate: Fri Jul 9 12:41:17 2021 +0100

    ARTEMIS-3372 - ensure test verification happens after expected failover event such that expected message is not tracked as a duplicate
---
 .../management/OpenWireDeleteQueueTest.java        | 31 +++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/management/OpenWireDeleteQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/management/OpenWireDeleteQueueTest.java
index b9c3853..153c2a7 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/management/OpenWireDeleteQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/management/OpenWireDeleteQueueTest.java
@@ -24,11 +24,13 @@ import javax.jms.MessageConsumer;
 import javax.jms.MessageListener;
 import javax.jms.MessageProducer;
 import javax.jms.Session;
+import java.io.IOException;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.activemq.ActiveMQConnection;
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
@@ -39,6 +41,7 @@ import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
 import org.apache.activemq.artemis.tests.integration.management.ManagementControlHelper;
 import org.apache.activemq.artemis.tests.integration.openwire.OpenWireTestBase;
 import org.apache.activemq.artemis.tests.util.Wait;
+import org.apache.activemq.transport.TransportListener;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -109,6 +112,29 @@ public class OpenWireDeleteQueueTest extends OpenWireTestBase {
             return bindings.contains(queueName1);
          }));
 
+         // expect a failover event
+         final CountDownLatch failoverStart = new CountDownLatch(1);
+         final CountDownLatch failoverEnd = new CountDownLatch(1);
+         ((ActiveMQConnection)connection).addTransportListener(new TransportListener() {
+            @Override
+            public void onCommand(Object command) {
+            }
+
+            @Override
+            public void onException(IOException error) {
+            }
+
+            @Override
+            public void transportInterupted() {
+               failoverStart.countDown();
+            }
+
+            @Override
+            public void transportResumed() {
+               failoverEnd.countDown();
+            }
+         });
+
          // the test op, will force a disconnect, failover will kick in..
          serverControl.destroyQueue(queueName1.toString(), true);
 
@@ -118,7 +144,10 @@ public class OpenWireDeleteQueueTest extends OpenWireTestBase {
          }));
 
 
-         // expect a failover event
+         assertTrue(failoverStart.await(5, TimeUnit.SECONDS));
+         assertTrue(failoverEnd.await(5, TimeUnit.SECONDS));
+
+         // failover complete, no chance of this message getting resent and detected as duplicate
          producer.send(session.createTextMessage("two"));
          assertTrue(two.await(5, TimeUnit.SECONDS));