summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java11
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java2
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQRequestBody.java2
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQResponseBody.java2
4 files changed, 15 insertions, 2 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java
index c9b683cc36..62699331e9 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java
@@ -36,7 +36,16 @@ public class AMQDataBlockDecoder
public AMQDataBlockDecoder()
{
- _supportedBodies.put(new Byte(AMQMethodBody.TYPE), AMQMethodBodyFactory.getInstance());
+ _supportedBodies.put(new Byte(AMQRequestBody.TYPE), new BodyFactory() {
+ public AMQBody createBody(ByteBuffer in) {
+ return new AMQRequestBody();
+ }
+ });
+ _supportedBodies.put(new Byte(AMQResponseBody.TYPE), new BodyFactory() {
+ public AMQBody createBody(ByteBuffer in) {
+ return new AMQResponseBody();
+ }
+ });
_supportedBodies.put(new Byte(HeartbeatBody.TYPE), new HeartbeatBodyFactory());
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java b/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java
index 8c17befa36..3dcbe926fe 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java
@@ -39,7 +39,7 @@ public class AMQMethodBodyFactory implements BodyFactory
_log.debug("Creating method body factory");
}
- public AMQBody createBody(ByteBuffer in) throws AMQFrameDecodingException
+ public AMQMethodBody createBody(ByteBuffer in) throws AMQFrameDecodingException
{
// AMQP version change: MethodBodyDecoderRegistry is obsolete, since all the XML
// segments generated together are now handled by MainRegistry. The Cluster class,
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQRequestBody.java b/java/common/src/main/java/org/apache/qpid/framing/AMQRequestBody.java
index 623b2356ae..828941ed03 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQRequestBody.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQRequestBody.java
@@ -73,6 +73,8 @@ public class AMQRequestBody extends AMQBody
requestId = EncodingUtils.readLong(buffer);
responseMark = EncodingUtils.readLong(buffer);
int reserved = EncodingUtils.readInteger(buffer); // reserved, throw away
+ AMQMethodBodyFactory factory = AMQMethodBodyFactory.getInstance();
+ methodPayload = factory.createBody(buffer);
methodPayload.populateFromBuffer(buffer, size - 8 - 8 - 4);
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQResponseBody.java b/java/common/src/main/java/org/apache/qpid/framing/AMQResponseBody.java
index 2b0fc97b1b..412b65cc01 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQResponseBody.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQResponseBody.java
@@ -75,6 +75,8 @@ public class AMQResponseBody extends AMQBody
requestId = EncodingUtils.readLong(buffer);
// XXX
batchOffset = EncodingUtils.readInteger(buffer);
+ AMQMethodBodyFactory factory = AMQMethodBodyFactory.getInstance();
+ methodPayload = factory.createBody(buffer);
methodPayload.populateFromBuffer(buffer, size - 8 - 8 - 4);
}