From 31bcf8b06da1e69d3ed08e733d0be166ab9d8d58 Mon Sep 17 00:00:00 2001 From: Rajith Muditha Attapattu Date: Thu, 29 Mar 2007 15:32:56 +0000 Subject: Fix for setting the message id git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2@523747 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/qpid/client/BasicMessageProducer.java | 21 ++++++++++++++++++--- .../qpid/client/message/AbstractJMSMessage.java | 3 ++- 2 files changed, 20 insertions(+), 4 deletions(-) (limited to 'java/client') diff --git a/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java b/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java index b01e087ce1..5b6945e259 100644 --- a/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java +++ b/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java @@ -21,6 +21,7 @@ package org.apache.qpid.client; import java.io.UnsupportedEncodingException; +import java.util.UUID; import javax.jms.BytesMessage; import javax.jms.DeliveryMode; @@ -118,6 +119,9 @@ public class BasicMessageProducer extends Closeable implements org.apache.qpid.j private final boolean _mandatory; private final boolean _waitUntilSent; + + private boolean _disableMessageId; + private static final ContentBody[] NO_CONTENT_BODIES = new ContentBody[0]; protected BasicMessageProducer(AMQConnection connection, AMQDestination destination, boolean transacted, int channelId, @@ -172,15 +176,14 @@ public class BasicMessageProducer extends Closeable implements org.apache.qpid.j { checkPreConditions(); checkNotClosed(); - // IGNORED + _disableMessageId = b; } public boolean getDisableMessageID() throws JMSException { checkNotClosed(); - // Always false for AMQP - return false; + return _disableMessageId; } public void setDisableMessageTimestamp(boolean b) throws JMSException @@ -450,6 +453,18 @@ public class BasicMessageProducer extends Closeable implements org.apache.qpid.j origMessage.setJMSDestination(destination); AbstractJMSMessage message = convertToNativeMessage(origMessage); + + if(_disableMessageId) + { + message.setJMSMessageID(null); + } + else + { + if (message.getJMSMessageID() == null) + { + message.setJMSMessageID(UUID.randomUUID().toString()); + } + } int type; if (destination instanceof Topic) diff --git a/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java index 66524edce3..41a143c544 100644 --- a/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java +++ b/java/client/src/main/java/org/apache/qpid/client/message/AbstractJMSMessage.java @@ -23,6 +23,7 @@ package org.apache.qpid.client.message; import java.util.Collections; import java.util.Enumeration; import java.util.Map; +import java.util.UUID; import javax.jms.Destination; import javax.jms.JMSException; @@ -123,7 +124,7 @@ public abstract class AbstractJMSMessage extends AMQMessage implements org.apach { if (getContentHeaderProperties().getMessageIdAsString() == null) { - getContentHeaderProperties().setMessageId("ID:" + _deliveryTag); + getContentHeaderProperties().setMessageId("ID:" + UUID.randomUUID()); } return getContentHeaderProperties().getMessageIdAsString(); -- cgit v1.2.1