diff options
Diffstat (limited to 'java/broker/src/main/java/org/apache/qpid/server/RequiredDeliveryException.java')
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/RequiredDeliveryException.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/RequiredDeliveryException.java b/java/broker/src/main/java/org/apache/qpid/server/RequiredDeliveryException.java index d61bb8916a..3f1947d65a 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/RequiredDeliveryException.java +++ b/java/broker/src/main/java/org/apache/qpid/server/RequiredDeliveryException.java @@ -39,19 +39,30 @@ import org.apache.qpid.server.queue.AMQMessage; */ public abstract class RequiredDeliveryException extends AMQException { - private final AMQMessage _amqMessage; + private AMQMessage _amqMessage; public RequiredDeliveryException(String message, AMQMessage payload) { super(message); + setMessage(payload); + } + + + public RequiredDeliveryException(String message) + { + super(message); + } + + public void setMessage(final AMQMessage payload) + { + // Increment the reference as this message is in the routing phase // and so will have the ref decremented as routing fails. // we need to keep this message around so we can return it in the // handler. So increment here. _amqMessage = payload.takeReference(); - // payload.incrementReference(); } public AMQMessage getAMQMessage() |