diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/ListenerContainerFactoryBean.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/ListenerContainerFactoryBean.java index 6e7c9ce2..853ac621 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/ListenerContainerFactoryBean.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/ListenerContainerFactoryBean.java @@ -629,6 +629,9 @@ public class ListenerContainerFactoryBean extends AbstractFactoryBean listenerContainers = getListenerContainers(); - AggregatingCallback aggregatingCallback = new AggregatingCallback(listenerContainers.size(), callback); - for (MessageListenerContainer listenerContainer : listenerContainers) { - try { - listenerContainer.stop(aggregatingCallback); - } - catch (Exception e) { - if (this.logger.isWarnEnabled()) { - this.logger.warn("Failed to stop listener container [" + listenerContainer + "]", e); + Collection containers = getListenerContainers(); + if (containers.size() > 0) { + AggregatingCallback aggregatingCallback = new AggregatingCallback(containers.size(), callback); + for (MessageListenerContainer listenerContainer : containers) { + try { + listenerContainer.stop(aggregatingCallback); + } + catch (Exception e) { + if (this.logger.isWarnEnabled()) { + this.logger.warn("Failed to stop listener container [" + listenerContainer + "]", e); + } } } } + else { + callback.run(); + } } @Override