summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2015-03-12 16:29:47 +0000
committerRobert Godfrey <rgodfrey@apache.org>2015-03-12 16:29:47 +0000
commit7b2de58298ec526db3025f6e40d032b35ba926c1 (patch)
treeac1e1b3fee6f207da441ce4f91dd7d85ed2ead3f /qpid/java
parent679888eb0d0dd80e21f5c63de83037a19d3b6c5b (diff)
downloadqpid-python-7b2de58298ec526db3025f6e40d032b35ba926c1.tar.gz
QPID-6447 : [Java AMQP 1.0 Client] Use endpoint lock in Transaction Controller
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1666241 13f79535-47bb-0310-9956-ffa450edef68
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.java17
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();
+ }
}
}