You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2021/03/17 18:40:46 UTC
[activemq-artemis] 02/03: ARTEMIS-3174 add test
This is an automated email from the ASF dual-hosted git repository.
jbertram pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
commit d36525348db3884a4409f3032d283a8f1dfbcd02
Author: Justin Bertram <jb...@apache.org>
AuthorDate: Wed Mar 17 13:30:50 2021 -0500
ARTEMIS-3174 add test
---
.../integration/cluster/reattach/ReattachTest.java | 26 ++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/ReattachTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/ReattachTest.java
index 3c91e7d..15bc091 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/ReattachTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/reattach/ReattachTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.activemq.artemis.tests.integration.cluster.reattach;
+import java.util.Objects;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.CountDownLatch;
@@ -41,6 +42,7 @@ import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionPro
import org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnector;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.api.core.RoutingType;
+import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.jms.client.ActiveMQTextMessage;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
@@ -122,6 +124,30 @@ public class ReattachTest extends ActiveMQTestBase {
sf.close();
}
+ @Test
+ public void testReattachTransferConnectionOnSession() throws Exception {
+ final long retryInterval = 50;
+ final double retryMultiplier = 1d;
+ final int reconnectAttempts = 10;
+
+ locator.setRetryInterval(retryInterval).setRetryIntervalMultiplier(retryMultiplier).setReconnectAttempts(reconnectAttempts).setConfirmationWindowSize(1024 * 1024);
+ ClientSessionFactoryInternal sf = (ClientSessionFactoryInternal) createSessionFactory(locator);
+ ClientSession session = sf.createSession(false, true, true);
+
+ // there's only one session on the broker
+ Object originalConnectionID = ((ServerSession)server.getSessions().toArray()[0]).getConnectionID();
+
+ // trigger re-attach
+ ((ClientSessionInternal) session).getConnection().fail(new ActiveMQNotConnectedException());
+
+ session.start();
+
+ assertFalse(Objects.equals(((ServerSession)server.getSessions().toArray()[0]).getConnectionID(), originalConnectionID));
+
+ session.close();
+ sf.close();
+ }
+
/*
* Test failure on connection, but server is still up so should immediately reconnect
*/