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 2015/03/20 17:56:51 UTC
tomee git commit: trying to propagate cdi exception in DeployerEjb as
it is done for webapps
Repository: tomee
Updated Branches:
refs/heads/master 4fbe1614e -> e4536b70f
trying to propagate cdi exception in DeployerEjb as it is done for webapps
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/e4536b70
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/e4536b70
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/e4536b70
Branch: refs/heads/master
Commit: e4536b70ff0e72cd932405226e962b35ce438e28
Parents: 4fbe161
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Fri Mar 20 17:56:38 2015 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Fri Mar 20 17:56:38 2015 +0100
----------------------------------------------------------------------
.../apache/openejb/assembler/DeployerEjb.java | 26 ++++++++++++---
tck/cdi-tomee/src/test/resources/failing.xml | 35 ++++++++++----------
.../tomee/catalina/TomcatWebAppBuilder.java | 15 +++++++++
3 files changed, 54 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/e4536b70/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
index e83c383..908d14b 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
@@ -24,6 +24,7 @@ import org.apache.openejb.OpenEJBRuntimeException;
import org.apache.openejb.UndeployException;
import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.DeploymentExceptionManager;
import org.apache.openejb.config.AppModule;
import org.apache.openejb.config.ConfigurationFactory;
import org.apache.openejb.config.DeploymentLoader;
@@ -263,13 +264,28 @@ public class DeployerEjb implements Deployer {
throw (ValidationException) e;
}
- if (e instanceof OpenEJBException) {
- if (e.getCause() instanceof ValidationException) {
- throw (ValidationException) e.getCause();
+ final Throwable ex;
+ final DeploymentExceptionManager dem = SystemInstance.get().getComponent(DeploymentExceptionManager.class);
+ if (dem != null) {
+ if (dem.hasDeploymentFailed()) {
+ ex = dem.getLastException();
+ } else {
+ ex = e;
}
- throw (OpenEJBException) e;
+ if (appInfo != null) {
+ dem.clearLastException(appInfo);
+ }
+ } else {
+ ex = e;
}
- throw new OpenEJBException(e);
+
+ if (ex instanceof OpenEJBException) {
+ if (ex.getCause() instanceof ValidationException) {
+ throw (ValidationException) ex.getCause();
+ }
+ throw (OpenEJBException) ex;
+ }
+ throw new OpenEJBException(ex);
}
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/e4536b70/tck/cdi-tomee/src/test/resources/failing.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-tomee/src/test/resources/failing.xml b/tck/cdi-tomee/src/test/resources/failing.xml
index 18bcd2f..ccad1ed 100644
--- a/tck/cdi-tomee/src/test/resources/failing.xml
+++ b/tck/cdi-tomee/src/test/resources/failing.xml
@@ -24,23 +24,24 @@
<test name="CDI TCK">
<classes>
<!--
- ConversationFilterTest>Arquillian.run:164->testConversationBusy:133 expected [BusyConversationException] but found [500]
- EnterpriseBeanDiscoveryTest>Arquillian.run:164->testExplicitBeanArchiveEmptyDescriptor:133->assertDiscoveredAndAvailable:172 expected [true] but found [false]
- EnterpriseBeanDiscoveryTest>Arquillian.run:164->testExplicitBeanArchiveLegacyDescriptor:140->assertDiscoveredAndAvailable:172 expected [true] but found [false]
- EnterpriseBeanDiscoveryTest>Arquillian.run:164->testExplicitBeanArchiveModeAll:126->assertDiscoveredAndAvailable:172 expected [true] but found [false]
- EnterpriseBeanDiscoveryTest>Arquillian.run:164->testImplicitBeanArchiveModeAnnotated:154->assertDiscoveredAndAvailable:172 expected [true] but found [false]
- EnterpriseBeanDiscoveryTest>Arquillian.run:164->testImplicitBeanArchiveNoDescriptor:147->assertDiscoveredAndAvailable:170->AbstractTest.getContextualReference:157 » UnsatisfiedResolution
- EnterpriseBeanDiscoveryTest>Arquillian.run:164->testNoBeanArchiveModeNone:160->assertNotDiscoveredAndNotAvailable:178 expected [true] but found [false]
- InstalledLibraryWarTest>Arquillian.arquillianBeforeClass:109 » Deployment Unab...
- ResourceDefinitionWithDifferentTypeTest>Arquillian.arquillianBeforeClass:109 » Runtime
- ResourceDefinitionWithDifferentTypeTest>Arquillian.arquillianBeforeClass:109 » Runtime
- ResourceDefinitionWithDifferentTypeTest>Arquillian.arquillianBeforeClass:109 » Runtime
- InterModuleELResolutionTest>Arquillian.run:164->testEnabledManagedBeanAvailableForELResolution:62 » PropertyNotFound
- DisabledProducerFieldInjectionNotAvailableTest>Arquillian.arquillianBeforeClass:109 » Runtime
- DisabledProducerMethodInjectionNotAvailableTest>Arquillian.arquillianBeforeClass:109 » Runtime
- DisabledSessionBeanInjectionNotAvailableTest>Arquillian.arquillianBeforeClass:109 » Runtime
- -->
- <class name="org.jboss.cdi.tck.tests.extensions.lifecycle.bbd.DeploymentTest" />
+ ConversationFilterTest>Arquillian.run:164->testConversationBusy:133 expected [BusyConversationException] but found [500]
+ EnterpriseBeanDiscoveryTest>Arquillian.run:164->testExplicitBeanArchiveEmptyDescriptor:133->assertDiscoveredAndAvailable:172 expected [true] but found [false]
+ EnterpriseBeanDiscoveryTest>Arquillian.run:164->testExplicitBeanArchiveLegacyDescriptor:140->assertDiscoveredAndAvailable:172 expected [true] but found [false]
+ EnterpriseBeanDiscoveryTest>Arquillian.run:164->testExplicitBeanArchiveModeAll:126->assertDiscoveredAndAvailable:172 expected [true] but found [false]
+ EnterpriseBeanDiscoveryTest>Arquillian.run:164->testImplicitBeanArchiveModeAnnotated:154->assertDiscoveredAndAvailable:172 expected [true] but found [false]
+ EnterpriseBeanDiscoveryTest>Arquillian.run:164->testImplicitBeanArchiveNoDescriptor:147->assertDiscoveredAndAvailable:170->AbstractTest.getContextualReference:157 » UnsatisfiedResolution
+ EnterpriseBeanDiscoveryTest>Arquillian.run:164->testNoBeanArchiveModeNone:160->assertNotDiscoveredAndNotAvailable:178 expected [true] but found [false]
+ MultiWebModuleWithExtensionTest>Arquillian.run:164 » IllegalState Error launch...
+ InstalledLibraryWarTest>Arquillian.arquillianBeforeClass:109 » Deployment Unab...
+ DeploymentTest>Arquillian.arquillianBeforeClass:109 » Deployment Unable to dep...
+ ResourceDefinitionWithDifferentTypeTest>Arquillian.arquillianBeforeClass:109 » Runtime
+ ResourceDefinitionWithDifferentTypeTest>Arquillian.arquillianBeforeClass:109 » Runtime
+ ResourceDefinitionWithDifferentTypeTest>Arquillian.arquillianBeforeClass:109 » Runtime
+ InterModuleELResolutionTest>Arquillian.run:164->testEnabledManagedBeanAvailableForELResolution:62 » PropertyNotFound
+ DisabledProducerMethodInjectionNotAvailableTest>Arquillian.arquillianBeforeClass:109 » Runtime
+ DisabledSessionBeanInjectionNotAvailableTest>Arquillian.arquillianBeforeClass:109 » Runtime
+ -->
+ <class name="org.jboss.cdi.tck.tests.lookup.modules.broken.DisabledProducerFieldInjectionNotAvailableTest" />
</classes>
</test>
</suite>
http://git-wip-us.apache.org/repos/asf/tomee/blob/e4536b70/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
index a5dd170..3052617 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
@@ -1297,6 +1297,12 @@ public class TomcatWebAppBuilder implements WebAppBuilder, ContextListener, Pare
OpenEJBLifecycle.CURRENT_APP_INFO.set(contextInfo.appInfo);
try {
new CdiBuilder().build(contextInfo.appInfo, appContext, beanContexts, webContext);
+ } catch (final Exception e) {
+ final DeploymentExceptionManager dem = SystemInstance.get().getComponent(DeploymentExceptionManager.class);
+ if (dem != null) {
+ dem.saveDeploymentException(contextInfo.appInfo, e);
+ }
+ throw e;
} finally {
OpenEJBLifecycle.CURRENT_APP_INFO.remove();
}
@@ -1318,6 +1324,15 @@ public class TomcatWebAppBuilder implements WebAppBuilder, ContextListener, Pare
} catch (final Exception e) {
logger.error("Error merging Java EE JNDI entries in to war " + standardContext.getPath() + ": Exception: " + e.getMessage(), e);
+ if (System.getProperty(TOMEE_EAT_EXCEPTION_PROP) == null) {
+ final DeploymentExceptionManager dem = SystemInstance.get().getComponent(DeploymentExceptionManager.class);
+ if (dem != null && dem.getDeploymentException(contextInfo.appInfo) != null) {
+ if (RuntimeException.class.isInstance(e)) {
+ throw RuntimeException.class.cast(e);
+ }
+ throw new TomEERuntimeException(e);
+ }
+ }
}
final JspFactory factory = JspFactory.getDefaultFactory();