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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to