private void checkUnderfull(long maximumQueueDepthBytes, long maximumQueueDepthMessages) { long queueDepthBytes = _queue.getQueueDepthBytes(); long queueDepthMessages = _queue.getQueueDepthMessages(); if (isUnderfull(queueDepthBytes, maximumQueueDepthBytes) && isUnderfull(queueDepthMessages, maximumQueueDepthMessages)) { if (_overfullReported.compareAndSet(true, false)) { _eventLogger.message(_queue.getLogSubject(), QueueMessages.UNDERFULL(queueDepthBytes, getFlowResumeLimit(maximumQueueDepthBytes), queueDepthMessages, getFlowResumeLimit(maximumQueueDepthMessages))); } for (final AMQPSession<?, ?> blockedSession : _blockedSessions) { blockedSession.unblock(_queue); _blockedSessions.remove(blockedSession); } } }