You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2016/11/16 17:15:17 UTC

svn commit: r1770019 - in /qpid/java/trunk/broker-core/src: main/java/org/apache/qpid/server/consumer/ main/java/org/apache/qpid/server/queue/ main/java/org/apache/qpid/server/virtualhost/ test/java/org/apache/qpid/server/consumer/ test/java/org/apache...

Author: rgodfrey
Date: Wed Nov 16 17:15:17 2016
New Revision: 1770019

URL: http://svn.apache.org/viewvc?rev=1770019&view=rev
Log:
QPID-7514 : Reduce duplicate method calls

Modified:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/consumer/AbstractConsumerTarget.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/consumer/TestConsumerTarget.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/TrustStoreMessageSourceTest.java

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/consumer/AbstractConsumerTarget.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/consumer/AbstractConsumerTarget.java?rev=1770019&r1=1770018&r2=1770019&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/consumer/AbstractConsumerTarget.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/consumer/AbstractConsumerTarget.java Wed Nov 16 17:15:17 2016
@@ -244,16 +244,16 @@ public abstract class AbstractConsumerTa
 
         if (messageContainer != null)
         {
-            MessageInstance entry = messageContainer._messageInstance;
+            MessageInstance entry = messageContainer.getMessageInstance();
             try
             {
                 send(consumer, entry, false);
             }
             finally
             {
-                if (messageContainer._messageReference != null)
+                if (messageContainer.getMessageReference() != null)
                 {
-                    messageContainer._messageReference.release();
+                    messageContainer.getMessageReference().release();
                 }
             }
             return true;

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=1770019&r1=1770018&r2=1770019&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 Wed Nov 16 17:15:17 2016
@@ -1887,25 +1887,25 @@ public abstract class AbstractQueue<X ex
             if (!consumer.isSuspended())
             {
                 messageContainer = attemptDelivery(consumer);
-                if(messageContainer != null)
+                if(messageContainer.getMessageInstance() != null)
                 {
-                    if(consumerHasAvailableMessages(consumer))
-                    {
-                        _queueConsumerManager.setNotified(consumer, true);
-                    }
+                    _queueConsumerManager.setNotified(consumer, true);
                 }
-
-                if (messageContainer == null && getNextAvailableEntry(consumer) == null)
+                else
                 {
-                    queueEmpty = true;
-                }
+                    if (messageContainer.hasNoAvailableMessages())
+                    {
+                        queueEmpty = true;
+                    }
 
-                if(messageContainer == null && consumer.acquires())
-                {
-                    if(hasAvailableMessages())
+                    if (consumer.acquires())
                     {
-                        notifyOtherConsumers(consumer);
+                        if (hasAvailableMessages())
+                        {
+                            notifyOtherConsumers(consumer);
+                        }
                     }
+                    messageContainer = null;
                 }
             }
             else
@@ -1932,19 +1932,44 @@ public abstract class AbstractQueue<X ex
         return _queueStatistics.getAvailableCount() != 0;
     }
 
-    public static class MessageContainer
+    public static final class MessageContainer
     {
-        public final MessageInstance _messageInstance;
-        public final MessageReference<?> _messageReference;
+        private final MessageInstance _messageInstance;
+        private final MessageReference<?> _messageReference;
+        private final boolean _hasNoAvailableMessages;
+
+        public MessageContainer(final boolean hasNoAvailableMessages)
+        {
+            this(null, null, hasNoAvailableMessages);
+        }
 
         public MessageContainer(final MessageInstance messageInstance,
-                                final MessageReference<?> messageReference)
+                                final MessageReference<?> messageReference, final boolean hasNoAvailableMessages)
         {
             _messageInstance = messageInstance;
             _messageReference = messageReference;
+            _hasNoAvailableMessages = hasNoAvailableMessages;
+        }
+
+        public MessageInstance getMessageInstance()
+        {
+            return _messageInstance;
+        }
+
+        public MessageReference<?> getMessageReference()
+        {
+            return _messageReference;
+        }
+
+        public boolean hasNoAvailableMessages()
+        {
+            return _hasNoAvailableMessages;
         }
     }
 
+    private static final MessageContainer NO_MESSAGES = new MessageContainer(true);
+    private static final MessageContainer HAS_MESSAGES = new MessageContainer(false);
+
     /**
      * Attempt delivery for the given consumer.
      *
@@ -1956,7 +1981,7 @@ public abstract class AbstractQueue<X ex
      */
     private MessageContainer attemptDelivery(QueueConsumer<?> sub)
     {
-        MessageContainer messageContainer = null;
+        MessageContainer messageContainer;
         // avoid referring old deleted queue entry in sub._queueContext._lastSeen
         QueueEntry node  = getNextAvailableEntry(sub);
         boolean subActive = sub.isActive() && !sub.isSuspended();
@@ -1969,6 +1994,7 @@ public abstract class AbstractQueue<X ex
                 throw new ConnectionScopedRuntimeException("Delivery halted owing to " +
                                                            "virtualhost state " + _virtualHost.getState());
             }
+            messageContainer = HAS_MESSAGES;
 
             if (node.isAvailable())
             {
@@ -1990,7 +2016,7 @@ public abstract class AbstractQueue<X ex
                             else
                             {
                                 setLastSeenEntry(sub, node);
-                                messageContainer = new MessageContainer(node, messageReference);
+                                messageContainer = new MessageContainer(node, messageReference, false);
                             }
                         }
                         finally
@@ -2008,10 +2034,14 @@ public abstract class AbstractQueue<X ex
                 }
             }
         }
+        else
+        {
+            messageContainer = node == null ? NO_MESSAGES : HAS_MESSAGES;
+        }
         return messageContainer;
     }
 
-    boolean noHigherPriorityWithCredit(final QueueConsumer<?> sub, final QueueEntry queueEntry)
+    private boolean noHigherPriorityWithCredit(final QueueConsumer<?> sub, final QueueEntry queueEntry)
     {
         Iterator<QueueConsumer<?>> consumerIterator = _queueConsumerManager.getAllIterator();
 

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java?rev=1770019&r1=1770018&r2=1770019&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java Wed Nov 16 17:15:17 2016
@@ -317,7 +317,7 @@ class QueueConsumerImpl
         if (messageContainer != null)
         {
             _deliveredCount.incrementAndGet();
-            _deliveredBytes.addAndGet(messageContainer._messageInstance.getMessage().getSize());
+            _deliveredBytes.addAndGet(messageContainer.getMessageInstance().getMessage().getSize());
         }
         return messageContainer;
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java?rev=1770019&r1=1770018&r2=1770019&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java Wed Nov 16 17:15:17 2016
@@ -148,7 +148,7 @@ public abstract class AbstractSystemMess
                 if (!_target.isSuspended() && _target.allocateCredit(propertiesMessageInstance.getMessage()))
                 {
                     _queue.remove(0);
-                    return new AbstractQueue.MessageContainer(propertiesMessageInstance, null);
+                    return new AbstractQueue.MessageContainer(propertiesMessageInstance, null, false);
                 }
             }
             return null;

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/consumer/TestConsumerTarget.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/consumer/TestConsumerTarget.java?rev=1770019&r1=1770018&r2=1770019&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/consumer/TestConsumerTarget.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/consumer/TestConsumerTarget.java Wed Nov 16 17:15:17 2016
@@ -186,7 +186,7 @@ public class TestConsumerTarget implemen
             return false;
         }
 
-        send(_consumer, messageContainer._messageInstance, false);
+        send(_consumer, messageContainer.getMessageInstance(), false);
         return true;
     }
 

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/TrustStoreMessageSourceTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/TrustStoreMessageSourceTest.java?rev=1770019&r1=1770018&r2=1770019&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/TrustStoreMessageSourceTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/TrustStoreMessageSourceTest.java Wed Nov 16 17:15:17 2016
@@ -21,7 +21,6 @@ package org.apache.qpid.server.security;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyBoolean;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -36,21 +35,16 @@ import java.util.Collection;
 import java.util.EnumSet;
 import java.util.List;
 
-import org.mockito.ArgumentCaptor;
-
 import org.apache.qpid.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.consumer.ConsumerImpl;
 import org.apache.qpid.server.consumer.ConsumerTarget;
-import org.apache.qpid.server.message.MessageInstance;
 import org.apache.qpid.server.message.ServerMessage;
-import org.apache.qpid.server.model.Consumer;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.TrustStore;
 import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.queue.AbstractQueue;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.TestMemoryMessageStore;
-import org.apache.qpid.server.virtualhost.AbstractSystemMessageSource;
 import org.apache.qpid.test.utils.QpidTestCase;
 
 
@@ -85,7 +79,7 @@ public class TrustStoreMessageSourceTest
         ConsumerImpl consumer = _trustStoreMessageSource.addConsumer(target, null, ServerMessage.class, getTestName(), options, 0);
         final AbstractQueue.MessageContainer messageContainer = consumer.pullMessage();
         assertNotNull("Could not pull message of TrustStore", messageContainer);
-        final ServerMessage message = messageContainer._messageInstance.getMessage();
+        final ServerMessage message = messageContainer.getMessageInstance().getMessage();
         assertCertificates(getCertificatesFromMessage(message));
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org