summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-01-30 15:27:43 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-01-30 15:27:43 +0000
commit7dca5833965c8dd71528a1925718a9e6cefedb82 (patch)
tree73bf784825179a27d7f656ac9c3b5a428a2d6c83 /branches/sca-java-1.x
parent3aba227b7df7d0a8b30e28ce6e934ca15944129c (diff)
TUSCANY-2798: Fix the jms binding to use the destination in the binding response element when the request message has no replyto
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@739306 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.x')
-rw-r--r--branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java b/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java
index 91868204ac..a2ecd3637b 100644
--- a/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java
+++ b/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java
@@ -21,6 +21,7 @@ package org.apache.tuscany.sca.binding.jms.transport;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
@@ -117,8 +118,18 @@ public class TransportServiceInterceptor implements Interceptor {
javax.jms.Message requestJMSMsg = context.getJmsMsg();
javax.jms.Message responseJMSMsg = msg.getBody();
+ Destination replyDest = requestJMSMsg.getJMSReplyTo();
+ if (replyDest == null) {
+ if (jmsBinding.getResponseDestinationName() != null) {
+ try {
+ replyDest = jmsResourceFactory.lookupDestination(jmsBinding.getResponseDestinationName());
+ } catch (NamingException e) {
+ throw new JMSBindingException("Exception lookingup response destination", e);
+ }
+ }
+ }
- if (requestJMSMsg.getJMSReplyTo() == null) {
+ if (replyDest == null) {
// assume no reply is expected
if (msg.getBody() != null) {
logger.log(Level.FINE, "JMS service '" + service.getName() + "' dropped response as request has no replyTo");
@@ -136,7 +147,7 @@ public class TransportServiceInterceptor implements Interceptor {
responseJMSMsg.setJMSCorrelationID(requestJMSMsg.getJMSCorrelationID());
}
- MessageProducer producer = session.createProducer(context.getReplyToDestination());
+ MessageProducer producer = session.createProducer(replyDest);
producer.send((javax.jms.Message)msg.getBody());