You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2018/03/15 20:49:49 UTC

qpid-jms git commit: QPIDJMS-365 Prevent multiple reconnect tasks from being triggered

Repository: qpid-jms
Updated Branches:
  refs/heads/master daec04641 -> 339781205


QPIDJMS-365 Prevent multiple reconnect tasks from being triggered

Ensure that the reconnect handler doesn't queue up a new attempt by
mistake when handling potential errors.


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/33978120
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/33978120
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/33978120

Branch: refs/heads/master
Commit: 33978120535a45fa30ae3b01749cda886d56a7b4
Parents: daec046
Author: Timothy Bish <ta...@gmail.com>
Authored: Thu Mar 15 16:49:33 2018 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Thu Mar 15 16:49:33 2018 -0400

----------------------------------------------------------------------
 .../qpid/jms/provider/failover/FailoverProvider.java     | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/33978120/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/failover/FailoverProvider.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/failover/FailoverProvider.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/failover/FailoverProvider.java
index 25a6739..3f3fb1b 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/failover/FailoverProvider.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/failover/FailoverProvider.java
@@ -670,6 +670,7 @@ public class FailoverProvider extends DefaultProviderListener implements Provide
                 }
 
                 Throwable failure = null;
+                Provider provider = null;
 
                 long reconnectAttempts = reconnectControl.recordNextAttempt();
 
@@ -682,7 +683,6 @@ public class FailoverProvider extends DefaultProviderListener implements Provide
                                 continue;
                             }
 
-                            Provider provider = null;
                             try {
                                 LOG.debug("Connection attempt:[{}] to: {} in-progress", reconnectAttempts, target);
                                 provider = ProviderFactory.create(target);
@@ -695,6 +695,7 @@ public class FailoverProvider extends DefaultProviderListener implements Provide
                                 try {
                                     if (provider != null) {
                                         provider.close();
+                                        provider = null;
                                     }
                                 } catch (Throwable ex) {}
                             }
@@ -708,7 +709,8 @@ public class FailoverProvider extends DefaultProviderListener implements Provide
                     LOG.info("Connection attempt:[{}] failed abnormally.", reconnectAttempts);
                     failure = failure == null ? unknownFailure : failure;
                 } finally {
-                    if (failure != null) {
+                    if (provider == null) {
+                        LOG.trace("Connection attempt:[{}] failed error: {}", reconnectControl.reconnectAttempts, failure.getMessage());
                         if (reconnectControl.isLimitExceeded()) {
                             reportReconnectFailure(failure);
                         } else {
@@ -815,6 +817,9 @@ public class FailoverProvider extends DefaultProviderListener implements Provide
     private void processAlternates(List<URI> alternates) {
         if (!alternates.isEmpty()) {
             List<URI> newRemotes = new ArrayList<URI>(alternates);
+
+            LOG.debug("Processing alternates uris:{} with new set: {}", uris, newRemotes);
+
             switch (amqpOpenServerListAction) {
                 case ADD:
                     try {
@@ -841,6 +846,8 @@ public class FailoverProvider extends DefaultProviderListener implements Provide
                     // Shouldn't get here, but do nothing if we do.
                     break;
             }
+
+            LOG.debug("Processing alternates done new uris:{}", uris);
         }
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org