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