Repository: tomee Updated Branches: refs/heads/tomee-1.7.x d7b4a7bba -> b4c50a7e1
TOMEE-1534 unwrap EJBException for jaxrs endpoints Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/b4c50a7e Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/b4c50a7e Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/b4c50a7e Branch: refs/heads/tomee-1.7.x Commit: b4c50a7e1c07161be0008c89dc04f6cc43054911 Parents: d7b4a7b Author: Romain Manni-Bucau <[email protected]> Authored: Fri Mar 27 12:25:19 2015 +0100 Committer: Romain Manni-Bucau <[email protected]> Committed: Fri Mar 27 12:25:19 2015 +0100 ---------------------------------------------------------------------- .../org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java | 5 +++++ 1 file changed, 5 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/b4c50a7e/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java ---------------------------------------------------------------------- diff --git a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java index a44856f..967c6ac 100644 --- a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java +++ b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBEJBInvoker.java @@ -32,6 +32,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.rmi.RemoteException; import java.util.*; +import javax.ejb.EJBException; public class OpenEJBEJBInvoker extends JAXRSInvoker { private final Map<Class<?>, Collection<Class<?>>> contextTypes = new HashMap<Class<?>, Collection<Class<?>>>(); @@ -97,6 +98,10 @@ public class OpenEJBEJBInvoker extends JAXRSInvoker { } } + if (EJBException.class.isInstance(cause)) { + cause = EJBException.class.cast(cause).getCause(); + } + if (ApplicationException.class.isInstance(cause) && Exception.class.isInstance(cause.getCause())) { throw Exception.class.cast(ApplicationException.class.cast(cause).getCause()); }
