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 | 2431662074a4468b133ae993e9d60bf82366836e (patch) | |
| tree | 1bd40e5dfa5283b46ac5b45dcaec898f8a7daa4f /qpid/java/client/src | |
| parent | 92148bb2c44311cb647241ffa8510a1220c76dd9 (diff) | |
| download | qpid-python-2431662074a4468b133ae993e9d60bf82366836e.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@1442364 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client/src')
| -rw-r--r-- | qpid/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/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java b/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java index ee39ecd7fc..94b835dd1a 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java +++ b/qpid/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) |
