diff options
| author | Rajith Muditha Attapattu <rajith@apache.org> | 2013-02-04 21:13:37 +0000 |
|---|---|---|
| committer | Rajith Muditha Attapattu <rajith@apache.org> | 2013-02-04 21:13:37 +0000 |
| commit | fd70bf0fadfd176cd6bd0b87e2d40f81a6dbf3e5 (patch) | |
| tree | 0d1b0e6fd9e1c42dadb1a821b50159d7ec682b1a /java | |
| parent | 64800005cae50020aa4c5e162fe036e0e0efa7b8 (diff) | |
| download | qpid-python-fd70bf0fadfd176cd6bd0b87e2d40f81a6dbf3e5.tar.gz | |
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
Diffstat (limited to 'java')
| -rw-r--r-- | java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java | 19 |
1 files changed, 9 insertions, 10 deletions
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) |
