You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2016/12/15 14:22:35 UTC

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

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: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org