Improve error handling in TransportServiceInterceptor.invoke()
--------------------------------------------------------------

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


In the TransportServiceInterceptor,invoke method, in the first catch block 
(corresponding to calling invokeResponse), if there is an error or runtime 
exception, this should be re-thrown. This allows transacted messages to be 
rolled back.

Also, in the finally block, a new try/catch block should be added around  
"((JMSBindingContext)msg.getBindingContext()).closeJmsResponseSession();", so 
if an error is thrown the resource factory can be used to close the connection:

                try {
                    
((JMSBindingContext)msg.getBindingContext()).closeJmsResponseSession();
                } catch (Throwable t) {
                }
                // Use the resource factory in the binding context to close the 
response connection,
                // to ensure we use same resource factory used to close 
response session.
                JMSResourceFactory rf = 
((JMSBindingContext)msg.getBindingContext()).getJmsResourceFactory();
                if (rf.isConnectionClosedAfterUse())
                    rf.closeResponseConnection(); 

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

        

Reply via email to