summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2013-09-26 19:44:05 +0000
committerRobert Godfrey <rgodfrey@apache.org>2013-09-26 19:44:05 +0000
commitec0e68b606c81f92c33b842384d7ca8a5152d91a (patch)
tree1839d83ab24645f192f1a328857b2b43303e83a6
parente613a9fd4288ac4337dbdb8374af9830b8f601ab (diff)
downloadqpid-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
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/MessageRejectedException.java9
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java18
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;
+ }
}
}