diff options
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransactionController.java | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransactionController.java b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransactionController.java index 7bf143cf4b..4a4cce1146 100644 --- a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransactionController.java +++ b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransactionController.java @@ -113,13 +113,14 @@ public class TransactionController implements DeliveryStateHandler private void waitForResponse() throws LinkDetachedException { - synchronized (this) + final Object lock = _endpoint.getLock(); + synchronized (lock) { while(!_received && !_endpoint.isDetached()) { try { - wait(); + lock.wait(); } catch (InterruptedException e) { @@ -133,12 +134,16 @@ public class TransactionController implements DeliveryStateHandler } } - private synchronized void remoteDetached(Detach detach) + private void remoteDetached(Detach detach) { - if(detach != null && detach.getError() != null) + final Object lock = _endpoint.getLock(); + synchronized (lock) { - _error = detach.getError(); - notifyAll(); + if (detach != null && detach.getError() != null) + { + _error = detach.getError(); + lock.notifyAll(); + } } } |
