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/04/15 17:00:57 UTC
qpid-jms git commit: QPIDJMS-172 Don't try and clean up an already
cleaned up connection failure.
Repository: qpid-jms
Updated Branches:
refs/heads/master c01017002 -> bcd4a91ca
QPIDJMS-172 Don't try and clean up an already cleaned up connection
failure.
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/bcd4a91c
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/bcd4a91c
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/bcd4a91c
Branch: refs/heads/master
Commit: bcd4a91cae3df8c30130fc5a0d4c80d52fce7ec6
Parents: c010170
Author: Timothy Bish <ta...@gmail.com>
Authored: Fri Apr 15 11:00:33 2016 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Fri Apr 15 11:00:33 2016 -0400
----------------------------------------------------------------------
.../jms/provider/failover/FailoverProvider.java | 74 ++++++++++----------
1 file changed, 38 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/bcd4a91c/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 fa20ee1..a8a43ea 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
@@ -532,49 +532,51 @@ public class FailoverProvider extends DefaultProviderListener implements Provide
* the error that triggered the failure of the provider.
*/
private void handleProviderFailure(final IOException cause) {
- LOG.debug("handling Provider failure: {}", cause.getMessage());
- LOG.trace("stack", cause);
-
- provider.setProviderListener(closedListener);
- URI failedURI = this.provider.getRemoteURI();
- try {
- provider.close();
- } catch (Throwable error) {
- LOG.trace("Caught exception while closing failed provider: {}", error.getMessage());
- }
- provider = null;
+ if (provider != null) {
+ LOG.debug("handling Provider failure: {}", cause.getMessage());
+ LOG.trace("stack", cause);
+
+ provider.setProviderListener(closedListener);
+ URI failedURI = this.provider.getRemoteURI();
+ try {
+ provider.close();
+ } catch (Throwable error) {
+ LOG.trace("Caught exception while closing failed provider: {}", error.getMessage());
+ }
+ provider = null;
- if (reconnectAllowed(cause)) {
+ if (reconnectAllowed(cause)) {
- if (cause instanceof ProviderRedirectedException) {
- ProviderRedirectedException redirect = (ProviderRedirectedException) cause;
- try {
- uris.addFirst(new URI(failedURI.getScheme() + "://" + redirect.getNetworkHost() + ":" + redirect.getPort()));
- } catch (URISyntaxException ex) {
- LOG.warn("Could not construct redirection URI from remote provided information");
+ if (cause instanceof ProviderRedirectedException) {
+ ProviderRedirectedException redirect = (ProviderRedirectedException) cause;
+ try {
+ uris.addFirst(new URI(failedURI.getScheme() + "://" + redirect.getNetworkHost() + ":" + redirect.getPort()));
+ } catch (URISyntaxException ex) {
+ LOG.warn("Could not construct redirection URI from remote provided information");
+ }
}
- }
- ProviderListener listener = this.listener;
- if (listener != null) {
- listener.onConnectionInterrupted(failedURI);
- }
+ ProviderListener listener = this.listener;
+ if (listener != null) {
+ listener.onConnectionInterrupted(failedURI);
+ }
- // Start watching for request timeouts while we are offline, unless we already are.
- if (requestTimeoutTask == null) {
- long sweeperInterval = getRequestSweeperInterval();
- if (sweeperInterval > 0) {
- LOG.trace("Request timeout monitoring enabled: interval = {}ms", sweeperInterval);
- requestTimeoutTask = serializer.scheduleWithFixedDelay(
- new FailoverRequestSweeper(), sweeperInterval, sweeperInterval, TimeUnit.MILLISECONDS);
+ // Start watching for request timeouts while we are offline, unless we already are.
+ if (requestTimeoutTask == null) {
+ long sweeperInterval = getRequestSweeperInterval();
+ if (sweeperInterval > 0) {
+ LOG.trace("Request timeout monitoring enabled: interval = {}ms", sweeperInterval);
+ requestTimeoutTask = serializer.scheduleWithFixedDelay(
+ new FailoverRequestSweeper(), sweeperInterval, sweeperInterval, TimeUnit.MILLISECONDS);
+ }
}
- }
- triggerReconnectionAttempt();
- } else {
- ProviderListener listener = this.listener;
- if (listener != null) {
- listener.onConnectionFailure(cause);
+ triggerReconnectionAttempt();
+ } else {
+ ProviderListener listener = this.listener;
+ if (listener != null) {
+ listener.onConnectionFailure(cause);
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org