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 2016/09/21 15:18:49 UTC

qpid-jms git commit: QPIDJMS-209 Give the operation a chance to complete on connection loss.

Repository: qpid-jms
Updated Branches:
  refs/heads/master 1daede27c -> 5bc391d01


QPIDJMS-209 Give the operation a chance to complete on connection loss.

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

Branch: refs/heads/master
Commit: 5bc391d014865384b51fb916fd982a45424aaa51
Parents: 1daede2
Author: Timothy Bish <ta...@gmail.com>
Authored: Wed Sep 21 11:18:25 2016 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Wed Sep 21 11:18:37 2016 -0400

----------------------------------------------------------------------
 .../qpid/jms/provider/failover/FailoverProvider.java  | 14 +++++++++-----
 .../failover/FailoverProviderTestSupport.java         |  2 +-
 .../apache/qpid/jms/provider/mock/MockRemotePeer.java | 10 ++++++----
 3 files changed, 16 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5bc391d0/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 2490b19..7795529 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
@@ -460,11 +460,13 @@ public class FailoverProvider extends DefaultProviderListener implements Provide
         final FailoverRequest pending = new FailoverRequest(request, requestTimeout) {
             @Override
             public void doTask() throws Exception {
+                LOG.info("Recover running");
                 provider.recover(sessionId, this);
             }
 
             @Override
             public boolean succeedsWhenOffline() {
+                LOG.info("Recover ok to complete due to being offline");
                 return true;
             }
 
@@ -1080,16 +1082,18 @@ public class FailoverProvider extends DefaultProviderListener implements Provide
         }
 
         @Override
-        public void onFailure(final Throwable result) {
-            if (result instanceof JMSException || closingConnection.get() || closed.get() || failed.get()) {
+        public void onFailure(final Throwable error) {
+            if (error instanceof JMSException || closingConnection.get() || closed.get() || failed.get()) {
                 requests.remove(id);
-                super.onFailure(result);
+                super.onFailure(error);
             } else {
-                LOG.debug("Request received error: {}", result.getMessage());
+                LOG.debug("Request received error: {}", error.getMessage());
                 serializer.execute(new Runnable() {
                     @Override
                     public void run() {
-                        handleProviderFailure(IOExceptionSupport.create(result));
+                        IOException ioError = IOExceptionSupport.create(error);
+                        whenOffline(ioError);
+                        handleProviderFailure(ioError);
                     }
                 });
             }

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5bc391d0/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTestSupport.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTestSupport.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTestSupport.java
index 7bdbb7e..498f36a 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTestSupport.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/failover/FailoverProviderTestSupport.java
@@ -57,7 +57,7 @@ public class FailoverProviderTestSupport extends QpidJmsTestCase {
     @After
     public void tearDown() throws Exception {
         if (mockPeer != null) {
-            mockPeer.shutdown();
+            mockPeer.terminate();
             mockPeer = null;
         }
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/5bc391d0/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockRemotePeer.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockRemotePeer.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockRemotePeer.java
index f24043d..f9ca714 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockRemotePeer.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockRemotePeer.java
@@ -104,6 +104,12 @@ public class MockRemotePeer {
         MockRemotePeer.INSTANCE = this;
     }
 
+    public void terminate() {
+        shutdown();
+
+        MockRemotePeer.INSTANCE = null;
+    }
+
     public void shutdown() {
         offline = true;
         List<MockProvider> active = new ArrayList<MockProvider>(activeProviders.values());
@@ -112,16 +118,12 @@ public class MockRemotePeer {
         }
         activeProviders.clear();
         lastRegistered = null;
-
-        MockRemotePeer.INSTANCE = null;
     }
 
     public void shutdownQuietly() {
         offline = true;
         activeProviders.clear();
         lastRegistered = null;
-
-        MockRemotePeer.INSTANCE = null;
     }
 
     public void silentlyCloseConnectedProviders() {


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