You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2013/08/29 19:42:33 UTC

svn commit: r1518723 - /cxf/branches/2.6.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java

Author: dkulp
Date: Thu Aug 29 17:42:32 2013
New Revision: 1518723

URL: http://svn.apache.org/r1518723
Log:
Merged revisions 1518705 via  git cherry-pick from
https://svn.apache.org/repos/asf/cxf/branches/2.7.x-fixes

........
  r1518705 | dkulp | 2013-08-29 12:49:27 -0400 (Thu, 29 Aug 2013) | 10 lines

  Merged revisions 1518692 via  git cherry-pick from
  https://svn.apache.org/repos/asf/cxf/trunk

  ........
    r1518692 | dkulp | 2013-08-29 12:27:47 -0400 (Thu, 29 Aug 2013) | 2 lines

    [CXF-5242] If using a topic for reply destination, leverage the Async setup to make sure a listener is setup ahead of time.

  ........

........

Modified:
    cxf/branches/2.6.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java

Modified: cxf/branches/2.6.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java?rev=1518723&r1=1518722&r2=1518723&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java (original)
+++ cxf/branches/2.6.x-fixes/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConduit.java Thu Aug 29 17:42:32 2013
@@ -189,7 +189,9 @@ public class JMSConduit extends Abstract
         Destination replyToDestination = null;
         if (!exchange.isOneWay() || !jmsConfig.isEnforceSpec() && isSetReplyTo(outMessage)
             && replyTo != null) {
-            if (exchange.isSynchronous() || exchange.isOneWay()) {
+            if (!jmsConfig.isReplyPubSubDomain()
+                && (exchange.isSynchronous() 
+                    || exchange.isOneWay())) {
                 replyToDestination = JMSFactory.resolveOrCreateDestination(jmsTemplate, replyTo,
                                                                            jmsConfig.isReplyPubSubDomain());
             } else {
@@ -210,14 +212,14 @@ public class JMSConduit extends Abstract
                 String messageType = jmsConfig.getMessageType();
                 Destination destination = rtd;
                 String replyToAddress = jmsConfig.getReplyToDestination();
-                if (replyToAddress != null) {
+                if (rtd == null && replyToAddress != null) {
                     destination = JMSFactory.resolveOrCreateDestination(jmsTemplate, replyToAddress,
                                                                         jmsConfig.isPubSubDomain());
                 }
                 jmsMessage = JMSUtils.buildJMSMessageFromCXFMessage(jmsConfig, outMessage, request,
                                                                     messageType, session, destination,
                                                                     cid);
-                if (!exchange.isSynchronous() && !exchange.isOneWay()) {
+                if ((jmsConfig.isReplyPubSubDomain() || !exchange.isSynchronous()) && !exchange.isOneWay()) {
                     correlationMap.put(cid, exchange);
                 }
                 LOG.log(Level.FINE, "client sending request: ", jmsMessage);
@@ -249,7 +251,7 @@ public class JMSConduit extends Abstract
                 headers.setJMSMessageID(messageCreator.getMessageID());
 
                 final String messageSelector = "JMSCorrelationID = '" + correlationId + "'";
-                if (exchange.isSynchronous()) {
+                if (exchange.isSynchronous() && !jmsConfig.isReplyPubSubDomain()) {
                     javax.jms.Message replyMessage = jmsTemplate.receiveSelected(replyToDestination,
                                                                                  messageSelector);
                     if (replyMessage == null) {
@@ -283,6 +285,7 @@ public class JMSConduit extends Abstract
             if (userCID != null) {
                 correlationId = userCID;
             } else if (!jmsConfig.isSetConduitSelectorPrefix()
+                       && !jmsConfig.isReplyPubSubDomain()
                        && (exchange.isSynchronous() || exchange.isOneWay())
                        && (!jmsConfig.isSetUseConduitIdSelector() 
                            || !jmsConfig.isUseConduitIdSelector())) {
@@ -441,4 +444,4 @@ public class JMSConduit extends Abstract
         super.finalize();
     }
 
-}
\ No newline at end of file
+}