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
commit378b6e8d57b30cb8e4c2a9128a6feaec6181e8ec (patch)
treed43b682bc4569b054f02f52655dba83db3b8bbda
parent7420956c75cf95c032743d4fb7a8ce281e90dae7 (diff)
downloadqpid-python-378b6e8d57b30cb8e4c2a9128a6feaec6181e8ec.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/qpid@1306208 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQConnection.java1
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/Closeable.java7
-rw-r--r--java/common/src/main/java/org/apache/qpid/transport/Connection.java1
3 files changed, 8 insertions, 1 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java b/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
index 1f61e0d218..23b47c8d67 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
+++ b/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/java/client/src/main/java/org/apache/qpid/client/Closeable.java b/java/client/src/main/java/org/apache/qpid/client/Closeable.java
index ba26bfc485..2f7fbad30c 100644
--- a/java/client/src/main/java/org/apache/qpid/client/Closeable.java
+++ b/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/java/common/src/main/java/org/apache/qpid/transport/Connection.java b/java/common/src/main/java/org/apache/qpid/transport/Connection.java
index b0f1a1bad8..2cd6a6e465 100644
--- a/java/common/src/main/java/org/apache/qpid/transport/Connection.java
+++ b/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());