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 <tabish...@gmail.com> Authored: Wed Sep 21 11:18:25 2016 -0400 Committer: Timothy Bish <tabish...@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-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org