Browse Source

Added proper synchronization and not-null check to SimpleMessageListenerContainer's doShutdown

Issue: SPR-9930
3.1.x
Juergen Hoeller 14 years ago
parent
commit
9caf672f21
  1. 18
      org.springframework.jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java

18
org.springframework.jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java

@ -351,13 +351,17 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta @@ -351,13 +351,17 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta
*/
@Override
protected void doShutdown() throws JMSException {
logger.debug("Closing JMS MessageConsumers");
for (MessageConsumer consumer : this.consumers) {
JmsUtils.closeMessageConsumer(consumer);
}
logger.debug("Closing JMS Sessions");
for (Session session : this.sessions) {
JmsUtils.closeSession(session);
synchronized (this.consumersMonitor) {
if (this.consumers != null) {
logger.debug("Closing JMS MessageConsumers");
for (MessageConsumer consumer : this.consumers) {
JmsUtils.closeMessageConsumer(consumer);
}
logger.debug("Closing JMS Sessions");
for (Session session : this.sessions) {
JmsUtils.closeSession(session);
}
}
}
}

Loading…
Cancel
Save