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

jbonofre pushed a commit to branch activemq-5.16.x
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/activemq-5.16.x by this push:
     new d915c79  [AMQ-8443] Allow reconnect command to work
d915c79 is described below

commit d915c791aa491112259b4385ae856b441f3745b0
Author: Matt Pavlovich <[email protected]>
AuthorDate: Thu Dec 23 07:57:24 2021 -0600

    [AMQ-8443] Allow reconnect command to work
    
    (cherry picked from commit bc9ff5a09fb0aad28d94c2aa72b4e31011b61905)
---
 .../org/apache/activemq/transport/failover/FailoverTransport.java  | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git 
a/activemq-client/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java
 
b/activemq-client/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java
index 6b6f518..dcb4cb8 100644
--- 
a/activemq-client/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java
+++ 
b/activemq-client/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java
@@ -122,6 +122,7 @@ public class FailoverTransport implements 
CompositeTransport {
     private String updateURIsURL = null;
     private boolean rebalanceUpdateURIs = true;
     private boolean doRebalance = false;
+    private boolean doReconnect = false;
     private boolean connectedToPriority = false;
 
     private boolean priorityBackup = false;
@@ -750,6 +751,7 @@ public class FailoverTransport implements 
CompositeTransport {
             reconnect(rebalance);
         }
     }
+    
 
     @Override
     public void remove(boolean rebalance, URI u[]) {
@@ -943,7 +945,7 @@ public class FailoverTransport implements 
CompositeTransport {
                     failure = new IOException("No uris available to connect 
to.");
                 } else {
                     if (doRebalance) {
-                        if (connectedToPriority || 
compareURIs(connectList.get(0), connectedTransportURI)) {
+                        if (connectedToPriority || (!doReconnect && 
compareURIs(connectList.get(0), connectedTransportURI))) {
                             // already connected to first in the list, no need 
to rebalance
                             doRebalance = false;
                             return false;
@@ -958,6 +960,7 @@ public class FailoverTransport implements 
CompositeTransport {
                             } catch (Exception e) {
                                 LOG.debug("Caught an exception stopping 
existing transport for rebalance", e);
                             }
+                            doReconnect = false;
                         }
                         doRebalance = false;
                     }
@@ -1256,6 +1259,8 @@ public class FailoverTransport implements 
CompositeTransport {
 
     @Override
     public void reconnect(URI uri) throws IOException {
+        uris.clear();
+        doReconnect = true;
         add(true, new URI[]{uri});
     }
 

Reply via email to