Repository: tomee Updated Branches: refs/heads/master 547bd0dab -> 38184f38d
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/38184f38 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/38184f38 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/38184f38 Branch: refs/heads/master Commit: 38184f38dbc57d3ef12fd8f457ed8805d748ea8d Parents: 547bd0d Author: Romain Manni-Bucau <[email protected]> Authored: Fri Mar 27 12:25:24 2015 +0100 Committer: Romain Manni-Bucau <[email protected]> Committed: Fri Mar 27 12:25:24 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/38184f38/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 2d53b52..90687a6 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 @@ -37,6 +37,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; +import javax.ejb.EJBException; public class OpenEJBEJBInvoker extends JAXRSInvoker { private final Map<Class<?>, Collection<Class<?>>> contextTypes = new HashMap<Class<?>, Collection<Class<?>>>(); @@ -102,6 +103,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()); }
