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));