Browse Source

DefaultMessageListenerContainer immediately invokes stop callback when not running

Issue: SPR-14233
pull/1050/head
Juergen Hoeller 10 years ago
parent
commit
e45d33f9de
  1. 6
      spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java

6
spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java

@ -614,6 +614,12 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe @@ -614,6 +614,12 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
@Override
public void stop(Runnable callback) throws JmsException {
synchronized (this.lifecycleMonitor) {
if (!isRunning() || this.stopCallback != null) {
// Not started, already stopped, or previous stop attempt in progress
// -> return immediately, no stop process to control anymore.
callback.run();
return;
}
this.stopCallback = callback;
}
stop();

Loading…
Cancel
Save