[jira] [Resolved] (TUSCANY-4019) scaOperationName being set on response messages

2012-02-24 Thread Jennifer A Thompson (Resolved) (JIRA)

 [ 
https://issues.apache.org/jira/browse/TUSCANY-4019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jennifer A Thompson resolved TUSCANY-4019.
--

Resolution: Fixed

Fixed in revision 1293172.

 scaOperationName being set on response messages
 ---

 Key: TUSCANY-4019
 URL: https://issues.apache.org/jira/browse/TUSCANY-4019
 Project: Tuscany
  Issue Type: Bug
  Components: Java SCA JMS Binding Extension
Affects Versions: Java-SCA-2.x
Reporter: Jennifer A Thompson
 Fix For: Java-SCA-2.x

 Attachments: Tuscany-4019.patch


 Per the JMS Binding specification,  scaOperationName should be set when 
 receiving a request at a service, or a callback at a reference 
 (line399-400), so it should not be set for reply messages. However the 
 HeaderServiceInterceptor.processResponse message is calling:
 responseMessageProcessor.setOperationName(operationName, jmsMsg);
 Which sets the scaOperationName of the request in the response message. This 
 line should be removed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: svn commit: r1293172 - in /tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers: HeaderReferenceInterceptor.java HeaderServiceInterceptor

2012-02-24 Thread Simon Laws
On Fri, Feb 24, 2012 at 10:45 AM,  jennt...@apache.org wrote:
 Author: jennthom
 Date: Fri Feb 24 10:45:15 2012
 New Revision: 1293172

 URL: http://svn.apache.org/viewvc?rev=1293172view=rev
 Log:
 Fix for JIRA TUSCANY 4019 - remote scsOperationName from response messages.

 Modified:
    
 tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java
    
 tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java

 Modified: 
 tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java
 URL: 
 http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java?rev=1293172r1=1293171r2=1293172view=diff
 ==
 --- 
 tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java
  (original)
 +++ 
 tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java
  Fri Feb 24 10:45:15 2012
 @@ -175,15 +175,6 @@ public class HeaderReferenceInterceptor

                javax.jms.Message responseMsg = msg.getBody();
                try {
 -                       // Operation name...
 -                       String operationName = 
 responseMsg.getStringProperty(scaOperationName);
 -                       for( Operation op : operations ) {
 -                               if( operationName.equals(op.getName())) {
 -                                       msg.setOperation(op);
 -                                       break;
 -                               } // end if
 -                       } // end for
 -
                        // Relates to header...
                        String relatesTo = 
 responseMsg.getStringProperty(RELATES_TO);
                        if( relatesTo != null ) {

 Modified: 
 tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java
 URL: 
 http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java?rev=1293172r1=1293171r2=1293172view=diff
 ==
 --- 
 tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java
  (original)
 +++ 
 tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java
  Fri Feb 24 10:45:15 2012
 @@ -77,8 +77,6 @@ public class HeaderServiceInterceptor ex

             Operation operation = tuscanyMsg.getOperation();
             String operationName = operation.getName();
 -
 -            responseMessageProcessor.setOperationName(operationName, jmsMsg);

             for (String propName : jmsBinding.getPropertyNames()) {
                 Object value = jmsBinding.getProperty(propName);



Hi Jennifer

I'm seeing an issue in itest/async-services which I think might be
related to this change. Let me run it by you

In the async case a response arriving back at the reference is
processed backwards along the reference change. When it goes in the
HeaderReferenceInterceptor the operation is not longer set on the
Message. The wire format interceptor, in my case
WireFormatJMSDefaultReferenceInterceptor, relies on operation being
set (it uses it to look up data type information) so fails with an
NPE.

So if we're not going to pass scaOperationName with the message we
need to find an alternative way of configuring the message object.

Simon

-- 
Apache Tuscany committer: tuscany.apache.org
Co-author of a book about Tuscany and SCA: tuscanyinaction.com