From 727cc60c075632329c345086d21cd12355fa0234 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Wed, 7 Oct 2009 22:28:45 +0000 Subject: QPID-942 : Added tests for broker and client log messages produced when flow control invoked git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@822949 13f79535-47bb-0310-9956-ffa450edef68 --- .../main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'java/broker') diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java b/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java index 8b6c15c0c3..08c4e94d1e 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java +++ b/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java @@ -127,6 +127,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener private long _capacity = ApplicationRegistry.getInstance().getConfiguration().getCapacity(); private long _flowResumeCapacity = ApplicationRegistry.getInstance().getConfiguration().getFlowResumeCapacity(); + private final AtomicBoolean _overfull = new AtomicBoolean(false); protected SimpleAMQQueue(AMQShortString name, boolean durable, AMQShortString owner, boolean autoDelete, VirtualHost virtualHost) throws AMQException @@ -1187,6 +1188,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener { if(_atomicQueueSize.get() > _capacity) { + _overfull.set(true); //Overfull log message _logActor.message(_logSubject, QueueMessages.QUE_1003(_atomicQueueSize.get(), _capacity)); @@ -1217,10 +1219,12 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener { if(_capacity != 0L) { - if(_atomicQueueSize.get() <= _flowResumeCapacity) + if(_overfull.get() && _atomicQueueSize.get() <= _flowResumeCapacity) { - //Underfull log message - _logActor.message(_logSubject, QueueMessages.QUE_1004(_atomicQueueSize.get(), _flowResumeCapacity)); + if(_overfull.compareAndSet(true,false)) + {//Underfull log message + _logActor.message(_logSubject, QueueMessages.QUE_1004(_atomicQueueSize.get(), _flowResumeCapacity)); + } for(AMQChannel c : _blockedChannels.keySet()) -- cgit v1.2.1