You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2020/02/10 18:09:06 UTC

[activemq] branch activemq-5.15.x updated: [AMQ-7401] Make double-checked locking thread-safe by declaring the field volatile.

This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch activemq-5.15.x
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/activemq-5.15.x by this push:
     new cc84036  [AMQ-7401] Make double-checked locking thread-safe by declaring the field volatile.
cc84036 is described below

commit cc8403608a7a68ef25da2e711e91d747f1b75902
Author: Pascal Schumacher <pa...@gmx.net>
AuthorDate: Sun Feb 9 17:40:47 2020 +0100

    [AMQ-7401] Make double-checked locking thread-safe by declaring the field volatile.
    
    (cherry picked from commit dac97e6294f796b93ee1e1b43aaa37566d2328ea)
---
 .../src/main/java/org/apache/activemq/ActiveMQConnection.java       | 2 +-
 .../src/main/java/org/apache/activemq/jms/pool/SessionHolder.java   | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnection.java b/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnection.java
index d95f871..6d8ce63 100644
--- a/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnection.java
+++ b/activemq-client/src/main/java/org/apache/activemq/ActiveMQConnection.java
@@ -199,7 +199,7 @@ public class ActiveMQConnection implements Connection, TopicConnection, QueueCon
     private boolean useDedicatedTaskRunner;
     protected AtomicInteger transportInterruptionProcessingComplete = new AtomicInteger(0);
     private long consumerFailoverRedeliveryWaitPeriod;
-    private Scheduler scheduler;
+    private volatile Scheduler scheduler;
     private boolean messagePrioritySupported = false;
     private boolean transactedIndividualAck = false;
     private boolean nonBlockingRedelivery = false;
diff --git a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/SessionHolder.java b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/SessionHolder.java
index afa75d6..38b6a75 100644
--- a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/SessionHolder.java
+++ b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/SessionHolder.java
@@ -33,9 +33,9 @@ import javax.jms.TopicSession;
 public class SessionHolder {
 
     private final Session session;
-    private MessageProducer producer;
-    private TopicPublisher publisher;
-    private QueueSender sender;
+    private volatile MessageProducer producer;
+    private volatile TopicPublisher publisher;
+    private volatile QueueSender sender;
 
     public SessionHolder(Session session) {
         this.session = session;