From 5b23f73bc0d4c8943ad00d261a759a4040e55278 Mon Sep 17 00:00:00 2001 From: markpollack Date: Fri, 24 Oct 2008 14:18:35 +0000 Subject: [PATCH] SPRNET-1070 - SimpleMessageListenerContainer to check for null sessions and consumers when shutting down. --- .../SimpleMessageListenerContainer.cs | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) 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; }