diff options
| author | Arnaud Simon <arnaudsimon@apache.org> | 2007-10-18 16:22:47 +0000 |
|---|---|---|
| committer | Arnaud Simon <arnaudsimon@apache.org> | 2007-10-18 16:22:47 +0000 |
| commit | d7b7eec631328f131ffc6711417c579a0ab8c8c2 (patch) | |
| tree | 27b1687c88476c17dbf608adec1dc400e61cd848 /qpid/java | |
| parent | b51d1464ebe67161eb3b7d8772ae7093001b324d (diff) | |
| download | qpid-python-d7b7eec631328f131ffc6711417c579a0ab8c8c2.tar.gz | |
changed to handle empty payload messages
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@586027 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Disassembler.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Disassembler.java b/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Disassembler.java index 266cbe4842..4d99a76d7e 100644 --- a/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Disassembler.java +++ b/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Disassembler.java @@ -79,6 +79,24 @@ public class Disassembler implements Sender<ConnectionEvent>, private void fragment(byte flags, byte type, ConnectionEvent event, ByteBuffer buf, boolean first, boolean last) { + if(!buf.hasRemaining()) + { + //empty data + byte nflags = flags; + if (first) + { + nflags |= FIRST_FRAME; + first = false; + } + nflags |= LAST_FRAME; + Frame frame = new Frame(nflags, type, + event.getProtocolEvent().getEncodedTrack(), + event.getChannel()); + // frame.addFragment(buf); + sender.send(frame); + } + else + { while (buf.hasRemaining()) { ByteBuffer slice = buf.slice(); @@ -102,6 +120,7 @@ public class Disassembler implements Sender<ConnectionEvent>, frame.addFragment(slice); sender.send(frame); } + } } public void init(ConnectionEvent event, ProtocolHeader header) |
