Skip to content

Commit 9caf672

Browse files
committed
Added proper synchronization and not-null check to SimpleMessageListenerContainer's doShutdown
Issue: SPR-9930
1 parent 9d78f17 commit 9caf672

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

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

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -351,13 +351,17 @@ protected void processMessage(Message message, Session session) {
351351
*/
352352
@Override
353353
protected void doShutdown() throws JMSException {
354-
logger.debug("Closing JMS MessageConsumers");
355-
for (MessageConsumer consumer : this.consumers) {
356-
JmsUtils.closeMessageConsumer(consumer);
357-
}
358-
logger.debug("Closing JMS Sessions");
359-
for (Session session : this.sessions) {
360-
JmsUtils.closeSession(session);
354+
synchronized (this.consumersMonitor) {
355+
if (this.consumers != null) {
356+
logger.debug("Closing JMS MessageConsumers");
357+
for (MessageConsumer consumer : this.consumers) {
358+
JmsUtils.closeMessageConsumer(consumer);
359+
}
360+
logger.debug("Closing JMS Sessions");
361+
for (Session session : this.sessions) {
362+
JmsUtils.closeSession(session);
363+
}
364+
}
361365
}
362366
}
363367

0 commit comments

Comments
 (0)