From fd70bf0fadfd176cd6bd0b87e2d40f81a6dbf3e5 Mon Sep 17 00:00:00 2001 From: Rajith Muditha Attapattu Date: Mon, 4 Feb 2013 21:13:37 +0000 Subject: QPID-4566 Allow a non UUID String to be set as message-id. This is required when Qpid Messages are sent using a 3rd party JMS Message Producer. Ex a Message Bridge. This doesn't affect AMQP 0-10 compliance as the sender implementation will always assign an UUID string as the message-id. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1442364 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/client/message/AMQMessageDelegate_0_10.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'java/client') diff --git a/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java b/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java index ee39ecd7fc..94b835dd1a 100644 --- a/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java +++ b/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java @@ -91,6 +91,7 @@ public class AMQMessageDelegate_0_10 extends AbstractAMQMessageDelegate private MessageProperties _messageProps; private DeliveryProperties _deliveryProps; + private String _messageID; protected AMQMessageDelegate_0_10() { @@ -171,8 +172,12 @@ public class AMQMessageDelegate_0_10 extends AbstractAMQMessageDelegate public String getJMSMessageID() throws JMSException { - UUID id = _messageProps.getMessageId(); - return id == null ? null : "ID:" + id; + if (_messageID == null && _messageProps.getMessageId() != null) + { + UUID id = _messageProps.getMessageId(); + _messageID = "ID:" + id; + } + return _messageID; } public void setJMSMessageID(String messageId) throws JMSException @@ -185,14 +190,7 @@ public class AMQMessageDelegate_0_10 extends AbstractAMQMessageDelegate { if(messageId.startsWith("ID:")) { - try - { - _messageProps.setMessageId(UUID.fromString(messageId.substring(3))); - } - catch(IllegalArgumentException ex) - { - throw new JMSException("MessageId '"+messageId+"' is not of the correct format, it must be ID: followed by a UUID"); - } + _messageID = messageId; } else { @@ -201,6 +199,7 @@ public class AMQMessageDelegate_0_10 extends AbstractAMQMessageDelegate } } + /* Used by the internal implementation */ public void setJMSMessageID(UUID messageId) throws JMSException { if(messageId == null) -- cgit v1.2.1