You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Martin Landua (JIRA)" <ji...@apache.org> on 2007/10/30 16:48:23 UTC

[jira] Created: (SM-1120) Throwable is not cought in BaseLifeCycle which can result in open transactions

Throwable is not cought in BaseLifeCycle which can result in open transactions
------------------------------------------------------------------------------

                 Key: SM-1120
                 URL: https://issues.apache.org/activemq/browse/SM-1120
             Project: ServiceMix
          Issue Type: Bug
          Components: servicemix-common
    Affects Versions: 3.1
         Environment: Everywhere
            Reporter: Martin Landua


The onMessageExchange method in BaseLifeCycle only catches Exceptions. If a Throwable is thrown during processing of the Message Exchange, the transaction will not be rolled back.
As a result, the transaction keeps associated with the thread, which is returned to the thread pool. Whenever this thread is being reused, it may lead to "Already associated to a transaction" exception in any further message processing (which is not related to the actual problem in any way).

Best regards

Martin Landua

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (SM-1120) Throwable is not cought in BaseLifeCycle which can result in open transactions

Posted by "Martin Landua (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/SM-1120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40530 ] 

Martin Landua commented on SM-1120:
-----------------------------------

Sorry, forgot to attach the patch.

Index: C:/jboss/servicemix-SNAPSHOT/common/servicemix-common/src/main/java/org/apache/servicemix/common/BaseLifeCycle.java
===================================================================
--- C:/jboss/servicemix-SNAPSHOT/common/servicemix-common/src/main/java/org/apache/servicemix/common/BaseLifeCycle.java	(revision 590120)
+++ C:/jboss/servicemix-SNAPSHOT/common/servicemix-common/src/main/java/org/apache/servicemix/common/BaseLifeCycle.java	(working copy)
@@ -44,7 +44,8 @@
     public void onMessageExchange(MessageExchange exchange) {
         try {
             processExchange(exchange);
-        } catch (Exception e) {
+        } catch (Throwable t) {
+        	Exception e = new Exception(t);
             logger.error("Error processing exchange " + exchange, e);
             try {
                 // If we are transacted and this is a runtime exception

> Throwable is not cought in BaseLifeCycle which can result in open transactions
> ------------------------------------------------------------------------------
>
>                 Key: SM-1120
>                 URL: https://issues.apache.org/activemq/browse/SM-1120
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-common
>    Affects Versions: 3.1
>         Environment: Everywhere
>            Reporter: Martin Landua
>
> The onMessageExchange method in BaseLifeCycle only catches Exceptions. If a Throwable is thrown during processing of the Message Exchange, the transaction will not be rolled back.
> As a result, the transaction keeps associated with the thread, which is returned to the thread pool. Whenever this thread is being reused, it may lead to "Already associated to a transaction" exception in any further message processing (which is not related to the actual problem in any way).
> Best regards
> Martin Landua

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.