summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-03-28 07:58:53 +0000
committerKeith Wall <kwall@apache.org>2012-03-28 07:58:53 +0000
commit08985a5b24e3e9be2fc3e584f0af13861b816490 (patch)
tree5d5bcb956c83aa0182d2575aac13b8e068dbfb8b
parent7ffc7a0fd55550cd4a33f7976beae4ca67035ae4 (diff)
downloadqpid-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
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java1
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/Closeable.java7
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java1
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());