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
+}