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 | 6010eea9e51c08a784add179ef5539d2be64f48f (patch) | |
| tree | a1522a0e6377b2d002c23cb5ae16976a82a06da7 /qpid/java/common/src | |
| parent | 8f077522f48fba58b1f3ea1762fa8e6c4f56605b (diff) | |
| download | qpid-python-6010eea9e51c08a784add179ef5539d2be64f48f.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@1068696 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/common/src')
| -rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java | 11 |
1 files changed, 11 insertions, 0 deletions
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 fd19fa0512..ab9d4431a3 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 @@ -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); |
