diff options
Diffstat (limited to 'branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java')
-rw-r--r-- | branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java b/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java index c3e6031b85..8382e3874f 100644 --- a/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java +++ b/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/transport/TransportReferenceInterceptor.java @@ -115,9 +115,8 @@ public class TransportReferenceInterceptor implements Interceptor { } public Message invokeResponse(Message msg) { + JMSBindingContext context = msg.getBindingContext(); try { - // get the jms context - JMSBindingContext context = msg.getBindingContext(); Session session = context.getJmsResponseSession(); javax.jms.Message requestMessage = (javax.jms.Message)msg.getBody(); @@ -148,7 +147,14 @@ public class TransportReferenceInterceptor implements Interceptor { throw new JMSBindingException(e); } catch (NamingException e) { throw new JMSBindingException(e); - } + } finally { + try { + context.closeJmsResponseSession(); + if (jmsResourceFactory.isConnectionClosedAfterUse()) + jmsResourceFactory.closeResponseConnection(); + } catch (JMSException e) { + } + } } public Invoker getNext() { |