You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2017/06/02 07:50:59 UTC

tomee git commit: TOMEE-2047 dont wrap all exception in TransactionalException

Repository: tomee
Updated Branches:
  refs/heads/master 2be715d0d -> f271f89a9


TOMEE-2047 dont wrap all exception in TransactionalException


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/f271f89a
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/f271f89a
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/f271f89a

Branch: refs/heads/master
Commit: f271f89a946726c65d0945a5cf26ee34197ca086
Parents: 2be715d
Author: rmannibucau <rm...@apache.org>
Authored: Fri Jun 2 09:50:53 2017 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Fri Jun 2 09:50:53 2017 +0200

----------------------------------------------------------------------
 .../cdi/transactional/InterceptorBase.java      |  6 +++++-
 .../cdi/transactional/TransactionalTest.java    | 21 +++++++++-----------
 2 files changed, 14 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/f271f89a/container/openejb-core/src/main/java/org/apache/openejb/cdi/transactional/InterceptorBase.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/transactional/InterceptorBase.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/transactional/InterceptorBase.java
index 1a97c53..21f0878 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/transactional/InterceptorBase.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/transactional/InterceptorBase.java
@@ -30,6 +30,7 @@ import javax.enterprise.inject.spi.CDI;
 import javax.interceptor.InvocationContext;
 import javax.transaction.RollbackException;
 import javax.transaction.TransactionManager;
+import javax.transaction.TransactionRequiredException;
 import javax.transaction.Transactional;
 import javax.transaction.TransactionalException;
 import java.io.Serializable;
@@ -120,7 +121,10 @@ public abstract class InterceptorBase implements Serializable {
                 }
             }
 
-            throw new TransactionalException(e.getMessage(), error);
+            if (error == null || TransactionRequiredException.class.isInstance(error)) {
+                throw new TransactionalException(e.getMessage(), error);
+            }
+            throw error;
         } finally {
             if (forbidsUt) {
                 CoreUserTransaction.resetError(oldEx);

http://git-wip-us.apache.org/repos/asf/tomee/blob/f271f89a/container/openejb-core/src/test/java/org/apache/openejb/cdi/transactional/TransactionalTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/cdi/transactional/TransactionalTest.java b/container/openejb-core/src/test/java/org/apache/openejb/cdi/transactional/TransactionalTest.java
index 265e5b2..468754b 100644
--- a/container/openejb-core/src/test/java/org/apache/openejb/cdi/transactional/TransactionalTest.java
+++ b/container/openejb-core/src/test/java/org/apache/openejb/cdi/transactional/TransactionalTest.java
@@ -45,10 +45,8 @@ import static javax.transaction.Transactional.TxType.NOT_SUPPORTED;
 import static javax.transaction.Transactional.TxType.REQUIRED;
 import static javax.transaction.Transactional.TxType.REQUIRES_NEW;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 @RunWith(ApplicationComposer.class)
@@ -67,7 +65,7 @@ public class TransactionalTest {
         assertNull(OpenEJB.getTransactionManager().getTransaction());
         try {
             bean.dontRollback();
-        } catch (final TransactionalException e) {
+        } catch (final AnException e) {
             // expected
         }
         assertNull(OpenEJB.getTransactionManager().getTransaction());
@@ -128,7 +126,7 @@ public class TransactionalTest {
             try {
                 bean.anException();
                 fail();
-            } catch (final TransactionalException e) {
+            } catch (final AnException e) {
                 // no-op
             }
             OpenEJB.getTransactionManager().rollback();
@@ -162,7 +160,7 @@ public class TransactionalTest {
                     }
                 });
                 fail();
-            } catch (final TransactionalException e) {
+            } catch (final AnException e) {
                 // no-op
             }
             assertEquals(Status.STATUS_ROLLEDBACK, status.get());
@@ -195,7 +193,7 @@ public class TransactionalTest {
                     }
                 });
                 fail();
-            } catch (final TransactionalException e) {
+            } catch (final AnCheckedException e) {
                 // no-op
             }
             assertEquals(Status.STATUS_COMMITTED, status.get());
@@ -228,7 +226,7 @@ public class TransactionalTest {
                     }
                 });
                 fail();
-            } catch (final TransactionalException e) {
+            } catch (final AnException e) {
                 // no-op
             }
             assertEquals(Status.STATUS_COMMITTED, status.get());
@@ -261,7 +259,7 @@ public class TransactionalTest {
                     }
                 });
                 fail();
-            } catch (final TransactionalException e) {
+            } catch (final AnCheckedException e) {
                 // no-op
             }
             assertEquals(Status.STATUS_COMMITTED, status.get());
@@ -275,7 +273,7 @@ public class TransactionalTest {
             try {
                 bean.anotherException(status);
                 fail();
-            } catch (final TransactionalException e) {
+            } catch (final AnotherException e) {
                 // no-op
             }
             assertEquals(Status.STATUS_COMMITTED, status.get());
@@ -304,9 +302,8 @@ public class TransactionalTest {
         try {
             bean.exceptionOnCompletion();
             fail();
-        } catch (final TransactionalException te) {
-            assertNotNull(te);
-            assertTrue(IllegalArgumentException.class.isInstance(te.getCause()));
+        } catch (final IllegalArgumentException te) {
+            // ok
         }
     }