Author: kwall
Date: Thu Dec 15 14:22:35 2016
New Revision: 1774469

URL: http://svn.apache.org/viewvc?rev=1774469&view=rev
Log:
QPID-7591: [Java Broker] Ensure that message reference is held for browsers 
until the consumer target sends the message

Modified:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java?rev=1774469&r1=1774468&r2=1774469&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
 Thu Dec 15 14:22:35 2016
@@ -1960,28 +1960,18 @@ public abstract class AbstractQueue<X ex
                     if (sub.allocateCredit(node))
                     {
                         MessageReference messageReference = null;
-                        try
+                        if ((sub.acquires() && !assign(sub, node))
+                            || (!sub.acquires() && (messageReference = 
node.newMessageReference()) == null))
                         {
+                            // restore credit here that would have been taken 
away by allocateCredit since we didn't manage
+                            // to acquire the entry for this consumer
+                            sub.restoreCredit(node);
 
-                            if ((sub.acquires() && !assign(sub, node))
-                                || (!sub.acquires() && (messageReference = 
node.newMessageReference()) == null))
-                            {
-                                // restore credit here that would have been 
taken away by wouldSuspend since we didn't manage
-                                // to acquire the entry for this consumer
-                                sub.restoreCredit(node);
-                            }
-                            else
-                            {
-                                setLastSeenEntry(sub, node);
-                                messageContainer = new MessageContainer(node, 
messageReference, false);
-                            }
                         }
-                        finally
+                        else
                         {
-                            if (messageReference != null)
-                            {
-                                messageReference.release();
-                            }
+                            setLastSeenEntry(sub, node);
+                            messageContainer = new MessageContainer(node, 
messageReference, false);
                         }
                     }
                     else



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

Reply via email to