summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorArnaud Simon <arnaudsimon@apache.org>2007-10-18 16:22:47 +0000
committerArnaud Simon <arnaudsimon@apache.org>2007-10-18 16:22:47 +0000
commitd7b7eec631328f131ffc6711417c579a0ab8c8c2 (patch)
tree27b1687c88476c17dbf608adec1dc400e61cd848 /qpid/java
parentb51d1464ebe67161eb3b7d8772ae7093001b324d (diff)
downloadqpid-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.java19
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)