summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2015-02-23 18:05:53 +0000
committerRobert Godfrey <rgodfrey@apache.org>2015-02-23 18:05:53 +0000
commitd8858396f32fda6bc22fcf6198fea387384a69f0 (patch)
tree1609b846ac1c59ef5a8eacad16a7d2ab05f86152
parent55e4b13fa957bb1b5e34def66fbeab01247e60e4 (diff)
downloadqpid-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
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/AmqpMessageImpl.java5
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageFactory.java7
-rw-r--r--qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Message.java10
-rw-r--r--qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java2
-rw-r--r--qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/messaging/codec/AmqpValueConstructor.java15
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);
}