Author: rgodfrey
Date: Mon Oct 27 19:02:01 2014
New Revision: 1634645

URL: http://svn.apache.org/r1634645
Log:
QPID-6190 : [Java Broker] [AMQP 1.0] Fix transactional sending to 
QueueDestination

Modified:
    
qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/QueueDestination.java

Modified: 
qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/QueueDestination.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/QueueDestination.java?rev=1634645&r1=1634644&r2=1634645&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/QueueDestination.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/QueueDestination.java
 Mon Oct 27 19:02:01 2014
@@ -21,12 +21,11 @@
 package org.apache.qpid.server.protocol.v1_0;
 
 import org.apache.log4j.Logger;
+
 import org.apache.qpid.amqp_1_0.type.Outcome;
 import org.apache.qpid.amqp_1_0.type.messaging.Accepted;
-
-import org.apache.qpid.server.message.MessageSource;
+import org.apache.qpid.server.message.MessageReference;
 import org.apache.qpid.server.queue.AMQQueue;
-
 import org.apache.qpid.server.txn.ServerTransaction;
 
 public class QueueDestination extends MessageSourceDestination implements 
SendingDestination, ReceivingDestination
@@ -51,16 +50,24 @@ public class QueueDestination extends Me
 
         txn.enqueue(getQueue(),message, new ServerTransaction.Action()
         {
+            MessageReference _reference = message.newReference();
 
 
             public void postCommit()
             {
-                getQueue().enqueue(message,null);
+                try
+                {
+                    getQueue().enqueue(message, null);
+                }
+                finally
+                {
+                    _reference.release();
+                }
             }
 
             public void onRollback()
             {
-                // NO-OP
+                _reference.release();
             }
         });
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to