Fix SmartLifecycle.stop(Runnable) usage
* Also remove redundant `stop(Runnable)` implementations which repeat a `default` one in the `SmartLifecycle` **Cherry-pick to 2.1.x & 2.0.x** # Conflicts: # spring-rabbit/src/main/java/org/springframework/amqp/rabbit/core/BrokerEventListener.java # spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/RabbitListenerEndpointRegistry.java
This commit is contained in:
@@ -629,6 +629,9 @@ public class ListenerContainerFactoryBean extends AbstractFactoryBean<AbstractMe
|
||||
if (this.container != null) {
|
||||
this.container.stop(callback);
|
||||
}
|
||||
else {
|
||||
callback.run();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -256,18 +256,23 @@ public class RabbitListenerEndpointRegistry implements DisposableBean, SmartLife
|
||||
|
||||
@Override
|
||||
public void stop(Runnable callback) {
|
||||
Collection<MessageListenerContainer> 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<MessageListenerContainer> 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
|
||||
|
||||
Reference in New Issue
Block a user