You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2017/08/31 16:06:11 UTC

[1/2] qpid-broker-j git commit: QPID-7823: [Java Broker] Make contradicting message-formats on multi transfer deliveries result in link error

Repository: qpid-broker-j
Updated Branches:
  refs/heads/master 8c26b5310 -> cc309fa38


QPID-7823: [Java Broker] Make contradicting message-formats on multi transfer deliveries result in link error


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/cc309fa3
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/cc309fa3
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/cc309fa3

Branch: refs/heads/master
Commit: cc309fa38780c19a268b4c3cfce2db1dd555db89
Parents: 5bd4b27
Author: Lorenz Quack <lq...@apache.org>
Authored: Thu Aug 31 14:57:57 2017 +0100
Committer: Lorenz Quack <lq...@apache.org>
Committed: Thu Aug 31 17:05:55 2017 +0100

----------------------------------------------------------------------
 .../protocol/v1_0/AbstractReceivingLinkEndpoint.java      |  6 ++++++
 .../org/apache/qpid/server/protocol/v1_0/Delivery.java    |  2 +-
 .../protocol/v1_0/StandardReceivingLinkEndpoint.java      |  2 +-
 .../qpid/tests/protocol/v1_0/messaging/MessageFormat.java | 10 +++++++---
 4 files changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/cc309fa3/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AbstractReceivingLinkEndpoint.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AbstractReceivingLinkEndpoint.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AbstractReceivingLinkEndpoint.java
index d7af093..09dcdb0 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AbstractReceivingLinkEndpoint.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AbstractReceivingLinkEndpoint.java
@@ -215,6 +215,12 @@ public abstract class AbstractReceivingLinkEndpoint<T extends BaseTarget> extend
             error = new Error(AmqpError.INVALID_FIELD,
                               "Transfer \"rcv-settle-mode\" is set to different value than on previous transfer.");
         }
+        else if (transfer.getMessageFormat() != null && !_currentDelivery.getMessageFormat()
+                                                                         .equals(transfer.getMessageFormat()))
+        {
+            error = new Error(AmqpError.INVALID_FIELD,
+                              "Transfer \"message-format\" is set to different value than on previous transfer.");
+        }
         return error;
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/cc309fa3/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Delivery.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Delivery.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Delivery.java
index 8facf8f..985d7ea 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Delivery.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Delivery.java
@@ -53,7 +53,7 @@ public class Delivery
         _deliveryId = transfer.getDeliveryId();
         _deliveryTag = transfer.getDeliveryTag();
         _linkEndpoint = endpoint;
-        _messageFormat = transfer.getMessageFormat();
+        _messageFormat = transfer.getMessageFormat() != null ? transfer.getMessageFormat() : UnsignedInteger.ZERO;
         addTransfer(transfer);
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/cc309fa3/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpoint.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpoint.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpoint.java
index 0a5915a..5ba857d 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpoint.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpoint.java
@@ -152,7 +152,7 @@ public class StandardReceivingLinkEndpoint extends AbstractReceivingLinkEndpoint
             UnsignedInteger messageFormat = delivery.getMessageFormat();
             DeliveryState xfrState = delivery.getState();
             List<QpidByteBuffer> fragments = delivery.getPayload();
-            MessageFormat format = MessageFormatRegistry.getFormat(messageFormat == null ? 0 : messageFormat.intValue());
+            MessageFormat format = MessageFormatRegistry.getFormat(messageFormat.intValue());
             if(format != null)
             {
                 serverMessage = format.createMessage(fragments, getAddressSpace().getMessageStore(), getSession().getConnection().getReference());

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/cc309fa3/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
index 4f3491f..a4058a5 100644
--- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
+++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MessageFormat.java
@@ -27,11 +27,13 @@ import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.fail;
 
 import java.net.InetSocketAddress;
+import java.util.Collections;
 
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Attach;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Begin;
@@ -43,6 +45,7 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.Error;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Flow;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Open;
 import org.apache.qpid.server.protocol.v1_0.type.transport.Role;
+import org.apache.qpid.tests.protocol.v1_0.Utils;
 import org.apache.qpid.tests.utils.BrokerAdmin;
 import org.apache.qpid.tests.protocol.v1_0.FrameTransport;
 import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase;
@@ -60,7 +63,6 @@ public class MessageFormat extends BrokerAdminUsingTestBase
         getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME);
     }
 
-    @Ignore("QPID-7823")
     @Test
     @SpecificationTest(section = "2.7.5",
             description = "message-format: "
@@ -71,6 +73,8 @@ public class MessageFormat extends BrokerAdminUsingTestBase
     {
         try (FrameTransport transport = new FrameTransport(_brokerAddress).connect())
         {
+            QpidByteBuffer[] payloads = Utils.splitPayload("testData", 2);
+
             final Response<?> latestResponse = transport.newInteraction()
                                                         .negotiateProtocol().consumeResponse()
                                                         .open().consumeResponse(Open.class)
@@ -81,14 +85,14 @@ public class MessageFormat extends BrokerAdminUsingTestBase
                                                         .consumeResponse(Flow.class)
                                                         .transferMore(true)
                                                         .transferMessageFormat(UnsignedInteger.ZERO)
-                                                        .transferPayloadData("testData")
+                                                        .transferPayload(Collections.singletonList(payloads[0]))
                                                         .transfer()
                                                         .consumeResponse(null, Flow.class, Disposition.class)
                                                         .transferDeliveryTag(null)
                                                         .transferDeliveryId(null)
                                                         .transferMore(false)
                                                         .transferMessageFormat(UnsignedInteger.ONE)
-                                                        .transferPayloadData("moreTestData")
+                                                        .transferPayload(Collections.singletonList(payloads[1]))
                                                         .transfer()
                                                         .consumeResponse(Detach.class, End.class, Close.class)
                                                         .getLatestResponse();


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[2/2] qpid-broker-j git commit: QPID-7823: [Java Broker] Refactor code to ensure AMQP 1.0 section always has either a value or encodedForm.

Posted by lq...@apache.org.
QPID-7823: [Java Broker] Refactor code to ensure AMQP 1.0 section always has either a value or encodedForm.

This was causing the IntelliJ debugger to behave in really weird ways.


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/5bd4b279
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/5bd4b279
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/5bd4b279

Branch: refs/heads/master
Commit: 5bd4b27969b53155452953be2ba9628678774987
Parents: 8c26b53
Author: Lorenz Quack <lq...@apache.org>
Authored: Thu Aug 31 14:56:16 2017 +0100
Committer: Lorenz Quack <lq...@apache.org>
Committed: Thu Aug 31 17:05:55 2017 +0100

----------------------------------------------------------------------
 .../v1_0/type/messaging/AbstractSection.java    | 22 ++---
 .../type/messaging/AmqpSequenceSection.java     |  5 +-
 .../v1_0/type/messaging/AmqpValueSection.java   |  7 +-
 .../messaging/ApplicationPropertiesSection.java |  6 +-
 .../v1_0/type/messaging/DataSection.java        |  7 +-
 .../messaging/DeliveryAnnotationsSection.java   |  6 +-
 .../v1_0/type/messaging/FooterSection.java      |  6 +-
 .../v1_0/type/messaging/HeaderSection.java      |  7 +-
 .../messaging/MessageAnnotationsSection.java    |  6 +-
 .../v1_0/type/messaging/PropertiesSection.java  |  7 +-
 .../AbstractEncodingRetainingConstructor.java   | 96 --------------------
 .../codec/AmqpSequenceSectionConstructor.java   |  7 +-
 .../codec/AmqpValueSectionConstructor.java      |  3 +-
 ...ApplicationPropertiesSectionConstructor.java |  8 +-
 .../messaging/codec/DataSectionConstructor.java |  3 +-
 .../DeliveryAnnotationsSectionConstructor.java  |  8 +-
 .../codec/DescribedListSectionConstructor.java  |  5 +-
 .../codec/DescribedMapSectionConstructor.java   |  7 +-
 .../type/messaging/codec/EncodingRetaining.java |  1 -
 .../codec/FooterSectionConstructor.java         |  8 +-
 .../codec/HeaderSectionConstructor.java         |  7 +-
 .../MessageAnnotationsSectionConstructor.java   |  8 +-
 .../codec/PropertiesSectionConstructor.java     |  7 +-
 23 files changed, 94 insertions(+), 153 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AbstractSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AbstractSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AbstractSection.java
index 423d7d5..a6142db 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AbstractSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AbstractSection.java
@@ -48,8 +48,15 @@ public abstract class AbstractSection<T, S extends NonEncodingRetainingSection<T
     // _encodedSize is valid only when _encodedForm is non-null
     private long _encodedSize = 0;
 
-    protected AbstractSection()
+    protected AbstractSection(final List<QpidByteBuffer> encodedForm)
     {
+        _encodedForm = new ArrayList<>();
+        _encodedSize = 0;
+        for(QpidByteBuffer encodedChunk : encodedForm)
+        {
+            _encodedSize += encodedChunk.remaining();
+            _encodedForm.add(encodedChunk.duplicate());
+        }
     }
 
     protected AbstractSection(final S section)
@@ -93,19 +100,6 @@ public abstract class AbstractSection<T, S extends NonEncodingRetainingSection<T
     }
 
     @Override
-    public synchronized final void setEncodedForm(final List<QpidByteBuffer> encodedForm)
-    {
-        clearEncodedForm();
-        _encodedForm = new ArrayList<>();
-        _encodedSize = 0;
-        for(QpidByteBuffer encodedChunk : encodedForm)
-        {
-            _encodedSize += encodedChunk.remaining();
-            _encodedForm.add(encodedChunk.duplicate());
-        }
-    }
-
-    @Override
     public synchronized final long getEncodedSize()
     {
         encodeIfNecessary();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpSequenceSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpSequenceSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpSequenceSection.java
index 131ddb9..a9aaaa9 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpSequenceSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpSequenceSection.java
@@ -23,14 +23,15 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
 import java.util.List;
 
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.AmqpSequenceConstructor;
 
 public class AmqpSequenceSection extends AbstractSection<List, AmqpSequence>
 {
-    public AmqpSequenceSection()
+    public AmqpSequenceSection(final List<QpidByteBuffer> encodedForm)
     {
-        super();
+        super(encodedForm);
     }
 
     AmqpSequenceSection(final AmqpSequence sequence)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpValueSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpValueSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpValueSection.java
index 6450243..4c892d3 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpValueSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/AmqpValueSection.java
@@ -21,14 +21,17 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.AmqpValueConstructor;
 
 public class AmqpValueSection extends AbstractSection<Object, AmqpValue>
 {
-    public AmqpValueSection()
+    public AmqpValueSection(final List<QpidByteBuffer> encodedForm)
     {
-        super();
+        super(encodedForm);
     }
 
     AmqpValueSection(final AmqpValue amqpValue)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/ApplicationPropertiesSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/ApplicationPropertiesSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/ApplicationPropertiesSection.java
index 459a5a3..917dcb9 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/ApplicationPropertiesSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/ApplicationPropertiesSection.java
@@ -21,17 +21,19 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
+import java.util.List;
 import java.util.Map;
 
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.ApplicationPropertiesConstructor;
 
 public class ApplicationPropertiesSection extends AbstractSection<Map<String,Object>, ApplicationProperties>
 {
 
-    public ApplicationPropertiesSection()
+    public ApplicationPropertiesSection(final List<QpidByteBuffer> encodedForm)
     {
-        super();
+        super(encodedForm);
     }
 
     ApplicationPropertiesSection(final ApplicationProperties section)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DataSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DataSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DataSection.java
index ef93dfa..ccbd624 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DataSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DataSection.java
@@ -21,15 +21,18 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.Binary;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.DataConstructor;
 
 public class DataSection extends AbstractSection<Binary, Data>
 {
-    public DataSection()
+    public DataSection(final List<QpidByteBuffer> encodedForm)
     {
-        super();
+        super(encodedForm);
     }
 
     DataSection(final Data data)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeliveryAnnotationsSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeliveryAnnotationsSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeliveryAnnotationsSection.java
index ee5e75b..63a6007 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeliveryAnnotationsSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/DeliveryAnnotationsSection.java
@@ -21,17 +21,19 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
+import java.util.List;
 import java.util.Map;
 
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.DeliveryAnnotationsConstructor;
 
 public class DeliveryAnnotationsSection extends AbstractSection<Map<Symbol,Object>, DeliveryAnnotations>
 {
-    public DeliveryAnnotationsSection()
+    public DeliveryAnnotationsSection(final List<QpidByteBuffer> encodedForm)
     {
-        super();
+        super(encodedForm);
     }
 
     DeliveryAnnotationsSection(final DeliveryAnnotations deliveryAnnotations)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/FooterSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/FooterSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/FooterSection.java
index 7e089de..e692568 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/FooterSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/FooterSection.java
@@ -21,17 +21,19 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
+import java.util.List;
 import java.util.Map;
 
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.FooterConstructor;
 
 public class FooterSection extends AbstractSection<Map<Symbol,Object>, Footer>
 {
-    public FooterSection()
+    public FooterSection(final List<QpidByteBuffer> encodedForm)
     {
-        super();
+        super(encodedForm);
     }
 
     FooterSection(final Footer footer)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/HeaderSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/HeaderSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/HeaderSection.java
index 4ea985b..823428e 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/HeaderSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/HeaderSection.java
@@ -21,14 +21,17 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.HeaderConstructor;
 
 public class HeaderSection extends AbstractSection<Header, Header>
 {
-    public HeaderSection()
+    public HeaderSection(final List<QpidByteBuffer> encodedForm)
     {
-        super();
+        super(encodedForm);
     }
 
     HeaderSection(final Header header)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/MessageAnnotationsSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/MessageAnnotationsSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/MessageAnnotationsSection.java
index 40f3743..8f1ae3f 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/MessageAnnotationsSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/MessageAnnotationsSection.java
@@ -21,17 +21,19 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
+import java.util.List;
 import java.util.Map;
 
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.MessageAnnotationsConstructor;
 
 public class MessageAnnotationsSection extends AbstractSection<Map<Symbol,Object>, MessageAnnotations>
 {
-    public MessageAnnotationsSection()
+    public MessageAnnotationsSection(final List<QpidByteBuffer> encodedForm)
     {
-        super();
+        super(encodedForm);
     }
 
     MessageAnnotationsSection(final MessageAnnotations messageAnnotations)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/PropertiesSection.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/PropertiesSection.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/PropertiesSection.java
index f9d80b6..87069ce 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/PropertiesSection.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/PropertiesSection.java
@@ -21,14 +21,17 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor;
 import org.apache.qpid.server.protocol.v1_0.type.messaging.codec.PropertiesConstructor;
 
 public class PropertiesSection extends AbstractSection<Properties, Properties>
 {
-    public PropertiesSection()
+    public PropertiesSection(final List<QpidByteBuffer> encodedForm)
     {
-        super();
+        super(encodedForm);
     }
 
     PropertiesSection(final Properties properties)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AbstractEncodingRetainingConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AbstractEncodingRetainingConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AbstractEncodingRetainingConstructor.java
deleted file mode 100644
index a528f5f..0000000
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AbstractEncodingRetainingConstructor.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
-import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructor;
-import org.apache.qpid.server.protocol.v1_0.codec.TypeConstructor;
-import org.apache.qpid.server.protocol.v1_0.codec.ValueHandler;
-import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException;
-
-abstract public class AbstractEncodingRetainingConstructor<T extends EncodingRetaining> implements DescribedTypeConstructor<T>
-{
-    @Override
-    public TypeConstructor<T> construct(final Object descriptor,
-                                        final List<QpidByteBuffer> in,
-                                        final int[] originalPositions,
-                                        final ValueHandler valueHandler)
-            throws AmqpErrorException
-    {
-        return new TypeConstructorFromUnderlying<>(this, valueHandler.readConstructor(in), originalPositions);
-    }
-
-    abstract protected T construct(Object underlying);
-
-    private static class TypeConstructorFromUnderlying<S extends EncodingRetaining> implements TypeConstructor<S>
-    {
-
-        private final TypeConstructor _describedConstructor;
-        private final int[] _originalPositions;
-        private AbstractEncodingRetainingConstructor<S> _describedTypeConstructor;
-
-        public TypeConstructorFromUnderlying(final AbstractEncodingRetainingConstructor<S> describedTypeConstructor,
-                                             final TypeConstructor describedConstructor, final int[] originalPositions)
-        {
-            _describedConstructor = describedConstructor;
-            _describedTypeConstructor = describedTypeConstructor;
-            _originalPositions = originalPositions;
-        }
-
-        @Override
-        public S construct(final List<QpidByteBuffer> in, final ValueHandler handler) throws AmqpErrorException
-        {
-
-            S object =  _describedTypeConstructor.construct(_describedConstructor.construct(in, handler));
-            List<QpidByteBuffer> encoding = new ArrayList<>();
-            int offset = in.size() - _originalPositions.length;
-            for(int i = offset; i < in.size(); i++)
-            {
-                QpidByteBuffer buf = in.get(i);
-                if(buf.position() == _originalPositions[i-offset])
-                {
-                    if(buf.hasRemaining())
-                    {
-                        break;
-                    }
-                }
-                else
-                {
-                    QpidByteBuffer dup = buf.duplicate();
-                    dup.position(_originalPositions[i-offset]);
-                    dup.limit(buf.position());
-                    encoding.add(dup);
-                }
-            }
-            object.setEncodedForm(encoding);
-            for (QpidByteBuffer buffer: encoding)
-            {
-                buffer.dispose();
-            }
-            return object;
-        }
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceSectionConstructor.java
index 462a31e..6158c6a 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceSectionConstructor.java
@@ -23,6 +23,9 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -46,9 +49,9 @@ public class AmqpSequenceSectionConstructor extends DescribedListSectionConstruc
     }
 
     @Override
-    protected AmqpSequenceSection createObject()
+    protected AmqpSequenceSection createObject(final List<QpidByteBuffer> encodedForm)
     {
-        return new AmqpSequenceSection();
+        return new AmqpSequenceSection(encodedForm);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpValueSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpValueSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpValueSectionConstructor.java
index da51ae3..daa76a9 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpValueSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpValueSectionConstructor.java
@@ -105,8 +105,7 @@ public class AmqpValueSectionConstructor implements DescribedTypeConstructor<Amq
                     encoding.add(dup);
                 }
             }
-            AmqpValueSection object = new AmqpValueSection();
-            object.setEncodedForm(encoding);
+            AmqpValueSection object = new AmqpValueSection(encoding);
             for (QpidByteBuffer buffer: encoding)
             {
                 buffer.dispose();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesSectionConstructor.java
index a018e12..a40efcd 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesSectionConstructor.java
@@ -23,6 +23,9 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -46,9 +49,10 @@ public class ApplicationPropertiesSectionConstructor extends DescribedMapSection
     }
 
     @Override
-    protected ApplicationPropertiesSection createObject(final DescribedTypeConstructorRegistry describedTypeRegistry)
+    protected ApplicationPropertiesSection createObject(final DescribedTypeConstructorRegistry describedTypeRegistry,
+                                                        final List<QpidByteBuffer> encodedForm)
     {
-        return new ApplicationPropertiesSection();
+        return new ApplicationPropertiesSection(encodedForm);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataSectionConstructor.java
index 9f40612..a5d2469 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataSectionConstructor.java
@@ -136,8 +136,7 @@ public class DataSectionConstructor implements DescribedTypeConstructor<DataSect
                     encoding.add(dup);
                 }
             }
-            DataSection object = new DataSection();
-            object.setEncodedForm(encoding);
+            DataSection object = new DataSection(encoding);
             for (QpidByteBuffer buffer: encoding)
             {
                 buffer.dispose();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeliveryAnnotationsSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeliveryAnnotationsSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeliveryAnnotationsSectionConstructor.java
index 8633469..eed18b9 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeliveryAnnotationsSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeliveryAnnotationsSectionConstructor.java
@@ -23,6 +23,9 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -46,9 +49,10 @@ public class DeliveryAnnotationsSectionConstructor extends DescribedMapSectionCo
     }
 
     @Override
-    protected DeliveryAnnotationsSection createObject(final DescribedTypeConstructorRegistry describedTypeRegistry)
+    protected DeliveryAnnotationsSection createObject(final DescribedTypeConstructorRegistry describedTypeRegistry,
+                                                      final List<QpidByteBuffer> encodedForm)
     {
-        return new DeliveryAnnotationsSection();
+        return new DeliveryAnnotationsSection(encodedForm);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DescribedListSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DescribedListSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DescribedListSectionConstructor.java
index 5e11400..c01b560 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DescribedListSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DescribedListSectionConstructor.java
@@ -124,8 +124,7 @@ public abstract class DescribedListSectionConstructor<S extends AbstractSection>
                     encoding.add(dup);
                 }
             }
-            S object = createObject();
-            object.setEncodedForm(encoding);
+            S object = createObject(encoding);
             for (QpidByteBuffer buffer: encoding)
             {
                 buffer.dispose();
@@ -135,5 +134,5 @@ public abstract class DescribedListSectionConstructor<S extends AbstractSection>
         }
     }
 
-    protected abstract S createObject();
+    protected abstract S createObject(final List<QpidByteBuffer> encodedForm);
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DescribedMapSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DescribedMapSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DescribedMapSectionConstructor.java
index 3a9a622..718c6da 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DescribedMapSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DescribedMapSectionConstructor.java
@@ -120,8 +120,8 @@ public abstract class DescribedMapSectionConstructor<S extends AbstractSection>
                     encoding.add(dup);
                 }
             }
-            S object = createObject(((SectionDecoderRegistry)handler.getDescribedTypeRegistry()).getUnderlyingRegistry());
-            object.setEncodedForm(encoding);
+            S object = createObject(((SectionDecoderRegistry)handler.getDescribedTypeRegistry()).getUnderlyingRegistry(),
+                                    encoding);
             for (QpidByteBuffer buffer: encoding)
             {
                 buffer.dispose();
@@ -131,5 +131,6 @@ public abstract class DescribedMapSectionConstructor<S extends AbstractSection>
         }
     }
 
-    protected abstract S createObject(final DescribedTypeConstructorRegistry describedTypeRegistry);
+    protected abstract S createObject(final DescribedTypeConstructorRegistry describedTypeRegistry,
+                                      final List<QpidByteBuffer> encodedForm);
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/EncodingRetaining.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/EncodingRetaining.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/EncodingRetaining.java
index d98ddec..d35a875 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/EncodingRetaining.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/EncodingRetaining.java
@@ -28,7 +28,6 @@ public interface EncodingRetaining
 {
     void writeTo(QpidByteBuffer dest);
     long getEncodedSize();
-    void setEncodedForm(List<QpidByteBuffer> encodedForm);
     List<QpidByteBuffer> getEncodedForm();
     void clearEncodedForm();
     EncodingRetaining copy();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/FooterSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/FooterSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/FooterSectionConstructor.java
index 341d8ce..a2f9e93 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/FooterSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/FooterSectionConstructor.java
@@ -23,6 +23,9 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -46,9 +49,10 @@ public class FooterSectionConstructor extends DescribedMapSectionConstructor<Foo
     }
 
     @Override
-    protected FooterSection createObject(final DescribedTypeConstructorRegistry describedTypeRegistry)
+    protected FooterSection createObject(final DescribedTypeConstructorRegistry describedTypeRegistry,
+                                         final List<QpidByteBuffer> encodedForm)
     {
-        return new FooterSection();
+        return new FooterSection(encodedForm);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/HeaderSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/HeaderSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/HeaderSectionConstructor.java
index 25fe80a..205290e 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/HeaderSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/HeaderSectionConstructor.java
@@ -23,6 +23,9 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -46,9 +49,9 @@ public class HeaderSectionConstructor extends DescribedListSectionConstructor<He
     }
 
     @Override
-    protected HeaderSection createObject()
+    protected HeaderSection createObject(final List<QpidByteBuffer> encodedForm)
     {
-        return new HeaderSection();
+        return new HeaderSection(encodedForm);
     }
 
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MessageAnnotationsSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MessageAnnotationsSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MessageAnnotationsSectionConstructor.java
index 5ea957f..4504c12 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MessageAnnotationsSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MessageAnnotationsSectionConstructor.java
@@ -23,6 +23,9 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -46,9 +49,10 @@ public class MessageAnnotationsSectionConstructor extends DescribedMapSectionCon
     }
 
     @Override
-    protected MessageAnnotationsSection createObject(final DescribedTypeConstructorRegistry describedTypeRegistry)
+    protected MessageAnnotationsSection createObject(final DescribedTypeConstructorRegistry describedTypeRegistry,
+                                                     final List<QpidByteBuffer> encodedForm)
     {
-        return new MessageAnnotationsSection();
+        return new MessageAnnotationsSection(encodedForm);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/5bd4b279/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/PropertiesSectionConstructor.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/PropertiesSectionConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/PropertiesSectionConstructor.java
index 57aceec..4e40362 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/PropertiesSectionConstructor.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/PropertiesSectionConstructor.java
@@ -23,6 +23,9 @@
 
 package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
 
+import java.util.List;
+
+import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry;
 import org.apache.qpid.server.protocol.v1_0.type.Symbol;
 import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -46,9 +49,9 @@ public class PropertiesSectionConstructor extends DescribedListSectionConstructo
     }
 
     @Override
-    protected PropertiesSection createObject()
+    protected PropertiesSection createObject(final List<QpidByteBuffer> encodedForm)
     {
-        return new PropertiesSection();
+        return new PropertiesSection(encodedForm);
     }
 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org