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 <lqu...@apache.org> Authored: Thu Aug 31 14:56:16 2017 +0100 Committer: Lorenz Quack <lqu...@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-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org