From cd633e9ec729c628f38ac4c3021f6223e68d81bb Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Fri, 20 Jun 2008 09:37:20 +0000 Subject: QPID-1144 : Reference count drops to zero too early for immediate messages in a txn git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@669841 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/qpid/server/txn/LocalTransactionalContext.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'qpid/java/broker') diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/LocalTransactionalContext.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/LocalTransactionalContext.java index ad8303ec5d..3c71282c57 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/LocalTransactionalContext.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/LocalTransactionalContext.java @@ -93,11 +93,19 @@ public class LocalTransactionalContext implements TransactionalContext public void process() throws AMQException { - QueueEntry entry = _queue.enqueue(getStoreContext(),_message); + _message.incrementReference(); + try + { + QueueEntry entry = _queue.enqueue(getStoreContext(),_message); - if(entry.immediateAndNotDelivered()) + if(entry.immediateAndNotDelivered()) + { + getReturnMessages().add(new NoConsumersException(_message)); + } + } + finally { - getReturnMessages().add(new NoConsumersException(_message)); + _message.decrementReference(getStoreContext()); } } } -- cgit v1.2.1