diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2013-09-26 19:44:05 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2013-09-26 19:44:05 +0000 |
| commit | ec0e68b606c81f92c33b842384d7ca8a5152d91a (patch) | |
| tree | 1839d83ab24645f192f1a328857b2b43303e83a6 | |
| parent | e613a9fd4288ac4337dbdb8374af9830b8f601ab (diff) | |
| download | qpid-python-ec0e68b606c81f92c33b842384d7ca8a5152d91a.tar.gz | |
QPID-5178 : Flow detail from Rejected outcome though to MessageRejectedException
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1526658 13f79535-47bb-0310-9956-ffa450edef68
2 files changed, 23 insertions, 4 deletions
diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/MessageRejectedException.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/MessageRejectedException.java index bc2b6349c8..fa559e060f 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/MessageRejectedException.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/MessageRejectedException.java @@ -22,8 +22,13 @@ import javax.jms.JMSException; public class MessageRejectedException extends JMSException { - public MessageRejectedException(String s) + public MessageRejectedException(String reason) { - super(s); + super(reason); + } + + public MessageRejectedException(java.lang.String reason, java.lang.String errorCode) + { + super(reason, errorCode); } } diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java index 648a91f20f..5502f88d75 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java @@ -34,7 +34,8 @@ import javax.jms.*; import javax.jms.IllegalStateException; import java.util.UUID; import org.apache.qpid.amqp_1_0.type.messaging.Accepted; -import org.apache.qpid.amqp_1_0.type.transport.*; +import org.apache.qpid.amqp_1_0.type.messaging.Rejected; +import org.apache.qpid.amqp_1_0.type.transport.Error; public class MessageProducerImpl implements MessageProducer, QueueSender, TopicPublisher { @@ -302,7 +303,15 @@ public class MessageProducerImpl implements MessageProducer, QueueSender, TopicP if(_syncPublish && !action.wasAccepted(_syncPublishTimeout + System.currentTimeMillis())) { - throw new MessageRejectedException("Message was rejected"); + if (action.getOutcome() instanceof Rejected) + { + Error err = ((Rejected) action.getOutcome()).getError(); + throw new MessageRejectedException(err.getDescription(), err.getCondition().toString()); + } + else + { + throw new MessageRejectedException("Message was not accepted. Outcome was: " + action.getOutcome()); + } } if(getDestination() != null) @@ -486,5 +495,10 @@ public class MessageProducerImpl implements MessageProducer, QueueSender, TopicP } } } + + Outcome getOutcome() + { + return _outcome; + } } } |
