summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2011-02-09 00:02:21 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2011-02-09 00:02:21 +0000
commitb38e6b119c0b15050a3ba41d543ddbe17296f490 (patch)
tree9f00884615d7097ea7c917e29de84ba1aad5b7f3
parentd86c2bf8ed53f41481f397a43afbba5f61f86f8f (diff)
downloadqpid-python-b38e6b119c0b15050a3ba41d543ddbe17296f490.tar.gz
QPID-3042
The createSession method in Connection.java now waits until the connection state == OPEN before it actually sends the session-attach on the wire. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1068696 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/common/src/main/java/org/apache/qpid/transport/Connection.java11
1 files changed, 11 insertions, 0 deletions
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 fd19fa0512..ab9d4431a3 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
@@ -313,6 +313,17 @@ public class Connection extends ConnectionInvoker
{
synchronized (lock)
{
+ Waiter w = new Waiter(lock, timeout);
+ while (w.hasTime() && state != OPEN && error == null)
+ {
+ w.await();
+ }
+
+ if (state != OPEN)
+ {
+ throw new ConnectionException("Timed out waiting for connection to be ready. Current state is :" + state);
+ }
+
Session ssn = _sessionFactory.newSession(this, name, expiry);
sessions.put(name, ssn);
map(ssn);