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]