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/23 11:56:49 UTC

svn commit: r1775818 - in /qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server: model/Queue.java queue/AbstractQueue.java

Author: kwall
Date: Fri Dec 23 11:56:49 2016
New Revision: 1775818

URL: http://svn.apache.org/viewvc?rev=1775818&view=rev
Log:
QPID-6028 : Queue caches binding count

Modified:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
    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/model/Queue.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java?rev=1775818&r1=1775817&r2=1775818&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java Fri Dec 23 11:56:49 2016
@@ -258,7 +258,6 @@ public interface Queue<X extends Queue<X
                                      + "visible may depend on how frequently the virtual host housekeeping thread runs.")
     boolean isHoldOnPublishEnabled();
 
-    //children
     @ManagedOperation(nonModifying = true, changesConfiguredObjectState = false)
     Collection<Binding> getBindings();
 

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=1775818&r1=1775817&r2=1775818&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 Fri Dec 23 11:56:49 2016
@@ -271,6 +271,7 @@ public abstract class AbstractQueue<X ex
     private final List<HoldMethod> _holdMethods = new CopyOnWriteArrayList<>();
     private Map<String, String> _mimeTypeToFileExtension = Collections.emptyMap();
     private AdvanceConsumersTask _queueHouseKeepingTask;
+    private volatile int _bindingCount;
 
     private interface HoldMethod
     {
@@ -1044,9 +1045,10 @@ public abstract class AbstractQueue<X ex
         return bindings;
     }
 
+    @Override
     public int getBindingCount()
     {
-        return getBindings().size();
+        return _bindingCount;
     }
 
     public LogSubject getLogSubject()
@@ -3397,11 +3399,13 @@ public abstract class AbstractQueue<X ex
     @Override
     public void linkAdded(final MessageSender sender, final String linkName)
     {
+
         Integer oldValue = _linkedSenders.putIfAbsent(sender, 1);
         if(oldValue != null)
         {
             _linkedSenders.put(sender, oldValue+1);
         }
+        _bindingCount++;
     }
 
     @Override
@@ -3412,5 +3416,6 @@ public abstract class AbstractQueue<X ex
         {
             _linkedSenders.put(sender, oldValue-1);
         }
+        _bindingCount--;
     }
 }



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