Author: antelder
Date: Fri Jan 30 15:27:43 2009
New Revision: 739306

URL: http://svn.apache.org/viewvc?rev=739306&view=rev
Log:
TUSCANY-2798: Fix the jms binding to use the destination in the binding 
response element when the request message has no replyto

Modified:
    
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java

Modified: 
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java?rev=739306&r1=739305&r2=739306&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java
 (original)
+++ 
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportServiceInterceptor.java
 Fri Jan 30 15:27:43 2009
@@ -21,6 +21,7 @@
 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 @@
             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 @@
                 
responseJMSMsg.setJMSCorrelationID(requestJMSMsg.getJMSCorrelationID());
             }                
                        
-            MessageProducer producer = 
session.createProducer(context.getReplyToDestination());
+            MessageProducer producer = session.createProducer(replyDest);
     
             producer.send((javax.jms.Message)msg.getBody());
     


Reply via email to