diff --git a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Listener/SimpleMessageListenerContainer.cs b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Listener/SimpleMessageListenerContainer.cs index e9504f51..296b35fa 100644 --- a/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Listener/SimpleMessageListenerContainer.cs +++ b/src/Spring/Spring.Messaging.Nms/Messaging/Nms/Listener/SimpleMessageListenerContainer.cs @@ -323,18 +323,27 @@ namespace Spring.Messaging.Nms.Listener /// NMSException if destruction failed protected override void DoShutdown() { - logger.Debug("Closing NMS MessageConsumers"); - foreach (IMessageConsumer messageConsumer in consumers) + lock (consumersMonitor) { - NmsUtils.CloseMessageConsumer(messageConsumer); + if (consumers != null) + { + logger.Debug("Closing NMS MessageConsumers"); + foreach (IMessageConsumer messageConsumer in consumers) + { + NmsUtils.CloseMessageConsumer(messageConsumer); + } + } + if (sessions != null) + { + logger.Debug("Closing NMS Sessions"); + foreach (ISession session in sessions) + { + NmsUtils.CloseSession(session); + } + } + consumers = null; + sessions = null; } - logger.Debug("Closing NMS Sessions"); - foreach (ISession session in sessions) - { - NmsUtils.CloseSession(session); - } - consumers = null; - sessions = null; }