From b2d40b716d2fbee1a9101c43a8de9e202647644d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Andr=C3=A9=20Pearce?= Date: Fri, 18 Jan 2019 08:16:10 +0000 Subject: [PATCH] NO-JIRA Fix double check locking in ActiveMQJMSContext Double checked locking was operating on a non-volatile field this is not threadsafe, make field volatile. --- .../apache/activemq/artemis/jms/client/ActiveMQJMSContext.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQJMSContext.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQJMSContext.java index 7a6c9ef0e0..ae3ab5d75e 100644 --- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQJMSContext.java +++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQJMSContext.java @@ -58,7 +58,7 @@ public class ActiveMQJMSContext implements JMSContext { private volatile Message lastMessagesWaitingAck; private final ActiveMQConnectionForContext connection; - private Session session; + private volatile Session session; private boolean autoStart = ActiveMQJMSContext.DEFAULT_AUTO_START; private MessageProducer innerProducer; private boolean xa; @@ -91,6 +91,7 @@ public class ActiveMQJMSContext implements JMSContext { } public Session getSession() { + checkSession(); return session; }