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

coheigea pushed a commit to branch 3.3.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit a9251a65f25049295817c6b8bd11ea679c7bcf7b
Author: Colm O hEigeartaigh <[email protected]>
AuthorDate: Wed Oct 7 13:00:32 2020 +0100

    Fixing race condition in JMSConduit
---
 .../jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java   | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java 
b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
index 25cffca..abc9650 100644
--- 
a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
+++ 
b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
@@ -204,7 +204,7 @@ public class JMSConduit extends AbstractConduit implements 
JMSExchangeSender, Me
         if (staticReplyDestination == null) {
             synchronized (this) {
                 if (staticReplyDestination == null) {
-                    staticReplyDestination = 
jmsConfig.getReplyDestination(session);
+                    Destination staticReplyDestinationTmp = 
jmsConfig.getReplyDestination(session);
 
                     String messageSelector = 
JMSFactory.getMessageSelector(jmsConfig, conduitId);
                     if (jmsConfig.getMessageSelector() != null) {
@@ -222,7 +222,7 @@ public class JMSConduit extends AbstractConduit implements 
JMSExchangeSender, Me
                     if (jmsConfig.isOneSessionPerConnection()) {
                         container = new 
PollingMessageListenerContainer(jmsConfig, true, this);
                     } else {
-                        container = new 
MessageListenerContainer(getConnection(), staticReplyDestination, this);
+                        container = new 
MessageListenerContainer(getConnection(), staticReplyDestinationTmp, this);
                     }
 
                     
container.setTransactionManager(jmsConfig.getTransactionManager());
@@ -236,6 +236,7 @@ public class JMSConduit extends AbstractConduit implements 
JMSExchangeSender, Me
                     container.start();
                     jmsListener = container;
                     addBusListener();
+                    staticReplyDestination = staticReplyDestinationTmp;
                 }
             }
         }

Reply via email to