diff options
author | Keith Wall <kwall@apache.org> | 2012-03-28 07:58:53 +0000 |
---|---|---|
committer | Keith Wall <kwall@apache.org> | 2012-03-28 07:58:53 +0000 |
commit | 08985a5b24e3e9be2fc3e584f0af13861b816490 (patch) | |
tree | 5d5bcb956c83aa0182d2575aac13b8e068dbfb8b | |
parent | 7ffc7a0fd55550cd4a33f7976beae4ca67035ae4 (diff) | |
download | qpid-python-08985a5b24e3e9be2fc3e584f0af13861b816490.tar.gz |
QPID-3912: Client failover fails to reconnect if a previous attempted reconnection has failed 'late' in the connection start process.
Applied patch from Andrew MacBean <andymacbean@gmail.com> and myself.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1306208 13f79535-47bb-0310-9956-ffa450edef68
3 files changed, 8 insertions, 1 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java index 1f61e0d218..23b47c8d67 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java @@ -578,6 +578,7 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect public ProtocolVersion makeBrokerConnection(BrokerDetails brokerDetail) throws IOException, AMQException { + resetClosedFlag(); return _delegate.makeBrokerConnection(brokerDetail); } diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/Closeable.java b/qpid/java/client/src/main/java/org/apache/qpid/client/Closeable.java index ba26bfc485..2f7fbad30c 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/Closeable.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/Closeable.java @@ -81,7 +81,7 @@ public abstract class Closeable } /** - * Checks if this is closis. + * Checks if this is closing. * * @return <tt>true</tt> if we are closing, <tt>false</tt> otherwise. */ @@ -90,6 +90,11 @@ public abstract class Closeable return _closing.get(); } + public void resetClosedFlag() + { + _closed.set(false); + } + protected boolean setClosed() { return _closed.getAndSet(true); diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java index b0f1a1bad8..2cd6a6e465 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java @@ -216,6 +216,7 @@ public class Connection extends ConnectionInvoker conSettings = settings; state = OPENING; userID = settings.getUsername(); + connectionLost.set(false); securityLayer = SecurityLayerFactory.newInstance(getConnectionSettings()); |