diff options
author | Rajith Muditha Attapattu <rajith@apache.org> | 2011-02-09 00:02:21 +0000 |
---|---|---|
committer | Rajith Muditha Attapattu <rajith@apache.org> | 2011-02-09 00:02:21 +0000 |
commit | b38e6b119c0b15050a3ba41d543ddbe17296f490 (patch) | |
tree | 9f00884615d7097ea7c917e29de84ba1aad5b7f3 | |
parent | d86c2bf8ed53f41481f397a43afbba5f61f86f8f (diff) | |
download | qpid-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.java | 11 |
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); |