Skip to content

Commit fee1206

Browse files
artembilangaryrussell
authored andcommitted
GH-1134: Fix stop(Runnable) usage
Fixes #1134 We always have to call `callback` in the `stop(Runnable)` implementation independently of the component state **Cherry-pick until 1.1.x to support Spring Boot 1.5.x**
1 parent 7d79406 commit fee1206

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

spring-kafka/src/main/java/org/springframework/kafka/config/KafkaListenerEndpointRegistry.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -269,15 +269,20 @@ public void stop() {
269269
@Override
270270
public void stop(Runnable callback) {
271271
Collection<MessageListenerContainer> listenerContainersToStop = getListenerContainers();
272-
AggregatingCallback aggregatingCallback = new AggregatingCallback(listenerContainersToStop.size(), callback);
273-
for (MessageListenerContainer listenerContainer : listenerContainersToStop) {
274-
if (listenerContainer.isRunning()) {
275-
listenerContainer.stop(aggregatingCallback);
276-
}
277-
else {
278-
aggregatingCallback.run();
272+
if (listenerContainersToStop.size() > 0) {
273+
AggregatingCallback aggregatingCallback = new AggregatingCallback(listenerContainersToStop.size(), callback);
274+
for (MessageListenerContainer listenerContainer : listenerContainersToStop) {
275+
if (listenerContainer.isRunning()) {
276+
listenerContainer.stop(aggregatingCallback);
277+
}
278+
else {
279+
aggregatingCallback.run();
280+
}
279281
}
280282
}
283+
else {
284+
callback.run();
285+
}
281286
}
282287

283288
@Override

spring-kafka/src/main/java/org/springframework/kafka/listener/AbstractMessageListenerContainer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,9 @@ public void stop(Runnable callback) {
408408
doStop(callback);
409409
publishContainerStoppedEvent();
410410
}
411+
else {
412+
callback.run();
413+
}
411414
}
412415
}
413416

0 commit comments

Comments
 (0)