[AMQ-8443] Allow reconnect command to work

(cherry picked from commit bc9ff5a09f)
This commit is contained in:
Matt Pavlovich 2021-12-23 07:57:24 -06:00 committed by Jean-Baptiste Onofré
parent 7295bd85a5
commit d915c791aa
1 changed files with 6 additions and 1 deletions

View File

@ -122,6 +122,7 @@ public class FailoverTransport implements CompositeTransport {
private String updateURIsURL = null; private String updateURIsURL = null;
private boolean rebalanceUpdateURIs = true; private boolean rebalanceUpdateURIs = true;
private boolean doRebalance = false; private boolean doRebalance = false;
private boolean doReconnect = false;
private boolean connectedToPriority = false; private boolean connectedToPriority = false;
private boolean priorityBackup = false; private boolean priorityBackup = false;
@ -751,6 +752,7 @@ public class FailoverTransport implements CompositeTransport {
} }
} }
@Override @Override
public void remove(boolean rebalance, URI u[]) { public void remove(boolean rebalance, URI u[]) {
for (URI uri : u) { for (URI uri : u) {
@ -943,7 +945,7 @@ public class FailoverTransport implements CompositeTransport {
failure = new IOException("No uris available to connect to."); failure = new IOException("No uris available to connect to.");
} else { } else {
if (doRebalance) { 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 // already connected to first in the list, no need to rebalance
doRebalance = false; doRebalance = false;
return false; return false;
@ -958,6 +960,7 @@ public class FailoverTransport implements CompositeTransport {
} catch (Exception e) { } catch (Exception e) {
LOG.debug("Caught an exception stopping existing transport for rebalance", e); LOG.debug("Caught an exception stopping existing transport for rebalance", e);
} }
doReconnect = false;
} }
doRebalance = false; doRebalance = false;
} }
@ -1256,6 +1259,8 @@ public class FailoverTransport implements CompositeTransport {
@Override @Override
public void reconnect(URI uri) throws IOException { public void reconnect(URI uri) throws IOException {
uris.clear();
doReconnect = true;
add(true, new URI[]{uri}); add(true, new URI[]{uri});
} }