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