From e776e1e5749b226bf5bd409d4c0295b8ee3bdffb Mon Sep 17 00:00:00 2001 From: Rajith Muditha Attapattu Date: Fri, 6 Feb 2009 22:04:30 +0000 Subject: This is a fix for the problem highlighted in QPID-1374 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@741754 13f79535-47bb-0310-9956-ffa450edef68 --- .../client/message/AbstractJMSMessageFactory.java | 26 +++++----------------- .../apache/qpid/client/message/MessageFactory.java | 6 +++-- .../client/message/MessageFactoryRegistry.java | 6 ++++- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessageFactory.java b/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessageFactory.java index 3071abf6ff..e719c9a4b2 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessageFactory.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessageFactory.java @@ -27,7 +27,6 @@ import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.ContentBody; import org.apache.qpid.framing.ContentHeaderBody; import org.apache.qpid.framing.BasicContentHeaderProperties; -import org.apache.qpid.transport.Struct; import org.apache.qpid.transport.MessageProperties; import org.apache.qpid.transport.DeliveryProperties; @@ -109,7 +108,8 @@ public abstract class AbstractJMSMessageFactory implements MessageFactory protected abstract AbstractJMSMessage createMessage(AMQMessageDelegate delegate, ByteBuffer data) throws AMQException; - protected AbstractJMSMessage create010MessageWithBody(long messageNbr, Struct[] contentHeader, + protected AbstractJMSMessage create010MessageWithBody(long messageNbr, MessageProperties msgProps, + DeliveryProperties deliveryProps, java.nio.ByteBuffer body) throws AMQException { ByteBuffer data; @@ -130,21 +130,7 @@ public abstract class AbstractJMSMessageFactory implements MessageFactory _logger.debug("Creating message from buffer with position=" + data.position() + " and remaining=" + data .remaining()); } - // set the properties of this message - MessageProperties mprop; - DeliveryProperties devprop; - if( contentHeader.length >1 ) - { - mprop = (MessageProperties) contentHeader[0]; - devprop = (DeliveryProperties) contentHeader[1]; - } - else - { - mprop = new MessageProperties(); - devprop = (DeliveryProperties) contentHeader[0]; - } - - AMQMessageDelegate delegate = new AMQMessageDelegate_0_10(mprop, devprop, messageNbr); + AMQMessageDelegate delegate = new AMQMessageDelegate_0_10(msgProps, deliveryProps, messageNbr); AbstractJMSMessage message = createMessage(delegate, data); return message; @@ -173,12 +159,12 @@ public abstract class AbstractJMSMessageFactory implements MessageFactory return msg; } - public AbstractJMSMessage createMessage(long messageNbr, boolean redelivered, Struct[] contentHeader, - java.nio.ByteBuffer body) + public AbstractJMSMessage createMessage(long messageNbr, boolean redelivered, MessageProperties msgProps, + DeliveryProperties deliveryProps, java.nio.ByteBuffer body) throws JMSException, AMQException { final AbstractJMSMessage msg = - create010MessageWithBody(messageNbr, contentHeader, body); + create010MessageWithBody(messageNbr,msgProps,deliveryProps, body); msg.setJMSRedelivered(redelivered); msg.receivedFromServer(); return msg; diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageFactory.java b/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageFactory.java index e1275c37f7..f3d96cd855 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageFactory.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageFactory.java @@ -27,7 +27,8 @@ import javax.jms.JMSException; import org.apache.qpid.AMQException; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.ContentHeaderBody; -import org.apache.qpid.transport.Struct; +import org.apache.qpid.transport.DeliveryProperties; +import org.apache.qpid.transport.MessageProperties; public interface MessageFactory @@ -39,7 +40,8 @@ public interface MessageFactory throws JMSException, AMQException; AbstractJMSMessage createMessage(long deliveryTag, boolean redelivered, - Struct[] contentHeader, + MessageProperties msgProps, + DeliveryProperties deliveryProps, java.nio.ByteBuffer body) throws JMSException, AMQException; diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java b/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java index 461fec73bc..d1b3baff6c 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java @@ -148,7 +148,11 @@ public class MessageFactoryRegistry { redelivered = deliverProps.getRedelivered(); } - return mf.createMessage(transfer.getId(), redelivered, transfer.getHeader().getStructs(), transfer.getBody()); + return mf.createMessage(transfer.getId(), + redelivered, + mprop == null? new MessageProperties():mprop, + deliverProps == null? new DeliveryProperties():deliverProps, + transfer.getBody()); } } -- cgit v1.2.1