summaryrefslogtreecommitdiff
path: root/qpid/java/common/src
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/common/src')
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpidity/transport/network/OutputHandler.java16
1 files changed, 6 insertions, 10 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/OutputHandler.java b/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/OutputHandler.java
index ee936f6503..9f770bcb1c 100644
--- a/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/OutputHandler.java
+++ b/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/OutputHandler.java
@@ -69,7 +69,7 @@ public class OutputHandler implements Sender<NetworkEvent>, NetworkDelegate
public void frame(Frame frame)
{
- ByteBuffer hdr = ByteBuffer.allocate(HEADER_SIZE);
+ ByteBuffer hdr = ByteBuffer.allocate(HEADER_SIZE + frame.getSize() + 1);
hdr.put(frame.getFlags());
hdr.put(frame.getType());
hdr.putShort((short) (frame.getSize() + HEADER_SIZE));
@@ -80,19 +80,15 @@ public class OutputHandler implements Sender<NetworkEvent>, NetworkDelegate
hdr.put(RESERVED);
hdr.put(RESERVED);
hdr.put(RESERVED);
+ for(ByteBuffer buf : frame)
+ {
+ hdr.put(buf);
+ }
+ hdr.put((byte) Constant.FRAME_END);
hdr.flip();
-
synchronized (lock)
{
sender.send(hdr);
- for (ByteBuffer buf : frame)
- {
- sender.send(buf);
- }
- ByteBuffer end = ByteBuffer.allocate(1);
- end.put((byte) Constant.FRAME_END);
- end.flip();
- sender.send(end);
}
}