diff options
Diffstat (limited to 'java/common/src')
| -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); |
