diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2015-02-23 18:05:53 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2015-02-23 18:05:53 +0000 |
commit | d8858396f32fda6bc22fcf6198fea387384a69f0 (patch) | |
tree | 1609b846ac1c59ef5a8eacad16a7d2ab05f86152 | |
parent | 55e4b13fa957bb1b5e34def66fbeab01247e60e4 (diff) | |
download | qpid-python-d8858396f32fda6bc22fcf6198fea387384a69f0.tar.gz |
QPID-6404 : Merge of 1661212,1661364,1661368,1661373 to 0.32
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.32@1661732 13f79535-47bb-0310-9956-ffa450edef68
5 files changed, 23 insertions, 16 deletions
diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/AmqpMessageImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/AmqpMessageImpl.java index d780c67a76..0afbb5c56f 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/AmqpMessageImpl.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/AmqpMessageImpl.java @@ -27,6 +27,7 @@ import java.util.ListIterator; import org.apache.qpid.amqp_1_0.jms.AmqpMessage; import org.apache.qpid.amqp_1_0.type.Section; +import org.apache.qpid.amqp_1_0.type.messaging.AmqpValue; import org.apache.qpid.amqp_1_0.type.messaging.ApplicationProperties; import org.apache.qpid.amqp_1_0.type.messaging.DeliveryAnnotations; import org.apache.qpid.amqp_1_0.type.messaging.Footer; @@ -36,6 +37,8 @@ import org.apache.qpid.amqp_1_0.type.messaging.Properties; public class AmqpMessageImpl extends MessageImpl implements AmqpMessage { + private static final List<Section> EMPTY_MESSAGE = + Collections.<Section>singletonList(new AmqpValue(null)); private List<Section> _sections; protected AmqpMessageImpl(Header header, @@ -57,7 +60,7 @@ public class AmqpMessageImpl extends MessageImpl implements AmqpMessage new DeliveryAnnotations(new HashMap()), new MessageAnnotations(new HashMap()), new Properties(), new ApplicationProperties(new HashMap()), new Footer(Collections.EMPTY_MAP), session); - _sections = new ArrayList<Section>(); + _sections = EMPTY_MESSAGE; } public int getSectionCount() diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageFactory.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageFactory.java index d120e4eadf..ef48e2a8a5 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageFactory.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageFactory.java @@ -226,6 +226,13 @@ class MessageFactory messageAnnotations, properties,appProperties,body,footer, _session); } } + else if(body.size() == 0) + { + message = new AmqpMessageImpl(header, + deliveryAnnotations, + messageAnnotations, properties,appProperties, + Collections.<Section>singletonList(new AmqpValue(null)),footer, _session); + } else { message = new AmqpMessageImpl(header, diff --git a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Message.java b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Message.java index 212342cd96..c4f9783c89 100644 --- a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Message.java +++ b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Message.java @@ -117,7 +117,12 @@ public class Message public Message(Collection<Section> sections) { - _payload.addAll(validateOrReorder(sections)); + this(sections, true); + } + + public Message(Collection<Section> sections, boolean validate) + { + _payload.addAll(validate ? validateOrReorder(sections) : sections); } public Message(Section section) @@ -214,7 +219,8 @@ public class Message while(it.hasNext()) { Collection<Class<? extends Section>> validSections = VALID_NEXT_SECTIONS.get(previousSection); - Class<? extends Section> sectionClass = it.next().getClass(); + Section next = it.next(); + Class<? extends Section> sectionClass = next.getClass(); if(validSections == null || !validSections.contains(sectionClass)) { return false; diff --git a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java index 1d9ec0fc66..be43601e63 100644 --- a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java +++ b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java @@ -318,7 +318,7 @@ public class Receiver implements DeliveryStateHandler // todo - throw a sensible error e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } - m = new Message(sections); + m = new Message(sections, false); m.setDeliveryTag(deliveryTag); m.setResume(resume); m.setReceiver(this); diff --git a/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/messaging/codec/AmqpValueConstructor.java b/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/messaging/codec/AmqpValueConstructor.java index 2000880361..30de72604b 100644 --- a/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/messaging/codec/AmqpValueConstructor.java +++ b/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/messaging/codec/AmqpValueConstructor.java @@ -25,8 +25,8 @@ package org.apache.qpid.amqp_1_0.type.messaging.codec; import org.apache.qpid.amqp_1_0.codec.DescribedTypeConstructor; import org.apache.qpid.amqp_1_0.codec.DescribedTypeConstructorRegistry; -import org.apache.qpid.amqp_1_0.type.*; -import org.apache.qpid.amqp_1_0.type.messaging.*; +import org.apache.qpid.amqp_1_0.type.Symbol; +import org.apache.qpid.amqp_1_0.type.UnsignedLong; import org.apache.qpid.amqp_1_0.type.messaging.AmqpValue; public class AmqpValueConstructor extends DescribedTypeConstructor<AmqpValue> @@ -49,16 +49,7 @@ public class AmqpValueConstructor extends DescribedTypeConstructor<AmqpValue> public AmqpValue construct(Object underlying) { - - if(underlying instanceof Object) - { - return new AmqpValue((Object)underlying); - } - else - { - // TODO - error - return null; - } + return new AmqpValue(underlying); } |