private void adjustConsumers(int newCount) { synchronized (this.consumersMonitor) { checkStartState(); this.consumersToRestart.clear(); for (String queue : getQueueNames()) { while (this.consumersByQueue.get(queue) == null || this.consumersByQueue.get(queue).size() < newCount) { // NOSONAR never null doConsumeFromQueue(queue); } List<SimpleConsumer> consumerList = this.consumersByQueue.get(queue); if (consumerList != null && consumerList.size() > newCount) { int delta = consumerList.size() - newCount; for (int i = 0; i < delta; i++) { int index = findIdleConsumer(); if (index >= 0) { SimpleConsumer consumer = consumerList.remove(index); if (consumer != null) { cancelConsumer(consumer); } } } } } } }
private void adjustConsumers(int newCount) { synchronized (this.consumersMonitor) { checkStartState(); this.consumersToRestart.clear(); for (String queue : getQueueNames()) { while (this.consumersByQueue.get(queue) == null || this.consumersByQueue.get(queue).size() < newCount) { // NOSONAR never null doConsumeFromQueue(queue); } List<SimpleConsumer> consumerList = this.consumersByQueue.get(queue); if (consumerList != null && consumerList.size() > newCount) { int delta = consumerList.size() - newCount; for (int i = 0; i < delta; i++) { int index = findIdleConsumer(); if (index >= 0) { SimpleConsumer consumer = consumerList.remove(index); if (consumer != null) { cancelConsumer(consumer); } } } } } } }