summaryrefslogtreecommitdiff
path: root/qpid/java/common
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2008-02-12 22:22:20 +0000
committerRafael H. Schloming <rhs@apache.org>2008-02-12 22:22:20 +0000
commit364b74b1355a4af8368e78926eff4b91e231dc47 (patch)
tree83d2478c0c3decfba7f51f7ff28e7a4a59c7220a /qpid/java/common
parent41c05e91fd96dab821327e5f5ac8b4380759efe5 (diff)
downloadqpid-python-364b74b1355a4af8368e78926eff4b91e231dc47.tar.gz
synchronize access to lastWrite future
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@627154 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/common')
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaSender.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaSender.java b/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaSender.java
index 17ae7ea0f7..f0f5731037 100644
--- a/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaSender.java
+++ b/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaSender.java
@@ -51,16 +51,23 @@ public class MinaSender implements Sender<java.nio.ByteBuffer>
{
throw new TransportException("attempted to write to a closed socket");
}
- lastWrite = session.write(ByteBuffer.wrap(buf));
+
+ synchronized (this)
+ {
+ lastWrite = session.write(ByteBuffer.wrap(buf));
+ }
}
- public void close()
+ public synchronized void close()
{
// MINA will sometimes throw away in-progress writes when you
// ask it to close
- if (lastWrite != null)
+ synchronized (this)
{
- lastWrite.join();
+ if (lastWrite != null)
+ {
+ lastWrite.join();
+ }
}
CloseFuture closed = session.close();
closed.join();