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());