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 2012/01/15 23:06:42 UTC
svn commit: r1231771 - in /openejb/trunk/openejb:
container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/
container/openejb-core/src/main/java/org/apache/openejb/config/
tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ tomee...
Author: rmannibucau
Date: Sun Jan 15 22:06:41 2012
New Revision: 1231771
URL: http://svn.apache.org/viewvc?rev=1231771&view=rev
Log:
saving exception thrown by apps/ applications to be able to retreive the exception later
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeploymentExceptionManager.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/deployer/WebappDeployer.java
openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1231771&r1=1231770&r2=1231771&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Sun Jan 15 22:06:41 2012
@@ -412,7 +412,7 @@ public class Assembler extends Assembler
final DeploymentExceptionManager exceptionManager = SystemInstance.get().getComponent(DeploymentExceptionManager.class);
if (exceptionManager != null && e instanceof Exception) {
- exceptionManager.saveDelpoymentException(appInfo, (Exception) e);
+ exceptionManager.saveDeploymentException(appInfo, (Exception) e);
}
}
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeploymentExceptionManager.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeploymentExceptionManager.java?rev=1231771&r1=1231770&r2=1231771&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeploymentExceptionManager.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeploymentExceptionManager.java Sun Jan 15 22:06:41 2012
@@ -17,8 +17,6 @@
package org.apache.openejb.assembler.classic;
-import org.apache.openejb.assembler.classic.AppInfo;
-
import java.util.LinkedHashMap;
import java.util.Map;
@@ -36,27 +34,33 @@ public class DeploymentExceptionManager
return size() > MAX_SIZE;
}
};
+ private Exception lastException = null;
- public synchronized boolean hasDelpoymentFailed(AppInfo appInfo) {
- return deploymentException.containsKey(appInfo);
+ public synchronized boolean hasDeploymentFailed() {
+ return lastException != null;
}
- public synchronized Exception getDelpoymentException(AppInfo appInfo) {
+ public synchronized Exception getDeploymentException(final AppInfo appInfo) {
return deploymentException.get(appInfo);
}
- public synchronized Exception saveDelpoymentException(AppInfo appInfo, Exception exception) {
+ public synchronized Exception saveDeploymentException(final AppInfo appInfo, final Exception exception) {
+ lastException = exception;
return deploymentException.put(appInfo, exception);
}
- public synchronized void clearDelpoymentException(AppInfo info) {
- deploymentException.remove(info);
+ public synchronized void clearLastException(final AppInfo info) {
+ if (info != null && deploymentException.get(info) == lastException) {
+ deploymentException.remove(info);
+ }
+ lastException = null;
}
- public Exception getFirstException() {
- if (deploymentException.isEmpty()) {
- return null;
- }
- return deploymentException.values().iterator().next();
+ public Exception getLastException() {
+ return lastException;
+ }
+
+ public void pushDelpoymentException(final Exception exception) {
+ lastException = exception;
}
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1231771&r1=1231770&r2=1231771&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Sun Jan 15 22:06:41 2012
@@ -27,6 +27,7 @@ import org.apache.openejb.assembler.clas
import org.apache.openejb.assembler.classic.ConnectorInfo;
import org.apache.openejb.assembler.classic.ContainerInfo;
import org.apache.openejb.assembler.classic.ContainerSystemInfo;
+import org.apache.openejb.assembler.classic.DeploymentExceptionManager;
import org.apache.openejb.assembler.classic.EjbJarInfo;
import org.apache.openejb.assembler.classic.FacilitiesInfo;
import org.apache.openejb.assembler.classic.HandlerChainInfo;
@@ -360,6 +361,7 @@ public class ConfigurationFactory implem
List<String> declaredApps = getDeclaredApps();
for (String pathname : declaredApps) {
+ AppInfo appInfo = null;
try {
try {
final File jarFile;
@@ -369,13 +371,19 @@ public class ConfigurationFactory implem
jarFile = new File(pathname);
}
- AppInfo appInfo = configureApplication(jarFile);
+ appInfo = configureApplication(jarFile);
sys.containerSystem.applications.add(appInfo);
} catch (URISyntaxException e) {
logger.error("Invalid declaredApp URI '" + pathname + "'", e);
}
} catch (OpenEJBException alreadyHandled) {
+ final DeploymentExceptionManager exceptionManager = SystemInstance.get().getComponent(DeploymentExceptionManager.class);
+ if (appInfo != null) {
+ exceptionManager.saveDeploymentException(appInfo, alreadyHandled);
+ } else {
+ exceptionManager.pushDelpoymentException(alreadyHandled);
+ }
}
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java?rev=1231771&r1=1231770&r2=1231771&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java Sun Jan 15 22:06:41 2012
@@ -178,6 +178,7 @@ public class RemoteServer {
File conf = new File(home, "conf");
File loggingProperties = new File(conf, "logging.properties");
+
File endorsed = new File(home, "endorsed");
File temp = new File(home, "temp");
Modified: openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java?rev=1231771&r1=1231770&r2=1231771&view=diff
==============================================================================
--- openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java (original)
+++ openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java Sun Jan 15 22:06:41 2012
@@ -27,8 +27,10 @@ import org.jboss.testharness.spi.Contain
import javax.naming.Context;
import javax.naming.InitialContext;
import java.io.File;
+import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
import java.util.Properties;
/**
@@ -70,6 +72,8 @@ public class FullRestartContainer extend
System.out.println(currentFile);
writeToFile(currentFile, archive);
+ addLogFiles();
+
server = new RemoteServer(100, true);
try {
server.start();
@@ -81,6 +85,34 @@ public class FullRestartContainer extend
return (exception = lookup().exception()) == null;
}
+ private static void addLogFiles() throws IOException {
+ final File tomee = new File(System.getProperty("openejb.home"));
+ if (tomee.exists()) {
+ final File log4j = new File(tomee, "lib/log4j.xml");
+ final FileWriter log4jWriter = new FileWriter(log4j);
+ log4jWriter.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!DOCTYPE log4j:configuration SYSTEM \"log4j.dtd\">\n" +
+ "<log4j:configuration xmlns:log4j=\"http://jakarta.apache.org/log4j/\" debug=\"false\">\n" +
+ " <appender name=\"stdout\" class=\"org.apache.log4j.ConsoleAppender\">\n" +
+ " <param name=\"Target\" value=\"System.out\" />\n" +
+ " <layout class=\"org.apache.log4j.SimpleLayout\" />\n" +
+ " </appender>\n" +
+ " <root>\n" +
+ " <priority value=\"INFO\"/>\n" +
+ " <appender-ref ref=\"stdout\"/>\n" +
+ " </root>\n" +
+ "</log4j:configuration>\n");
+ log4jWriter.close();
+
+ final File systemProperties = new File(tomee, "conf/system.properties");
+ final FileWriter systemPropertiesWriter = new FileWriter(systemProperties);
+ systemPropertiesWriter.write("openejb.logger.external=true");
+ systemPropertiesWriter.close();
+ } else {
+ System.out.println("tomee folder doesn't exist");
+ }
+ }
+
@Override
public void undeploy(String name) throws IOException {
server.destroy();
Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1231771&r1=1231770&r2=1231771&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java Sun Jan 15 22:06:41 2012
@@ -598,7 +598,7 @@ public class TomcatWebAppBuilder impleme
if (System.getProperty(TOMEE_EAT_EXCEPTION_PROP) == null) {
final TomEERuntimeException tre = new TomEERuntimeException(e);
DeploymentExceptionManager dem = SystemInstance.get().getComponent(DeploymentExceptionManager.class);
- dem.saveDelpoymentException(contextInfo.appInfo, tre);
+ dem.saveDeploymentException(contextInfo.appInfo, tre);
throw tre;
}
return;
Modified: openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/deployer/WebappDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/deployer/WebappDeployer.java?rev=1231771&r1=1231770&r2=1231771&view=diff
==============================================================================
--- openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/deployer/WebappDeployer.java (original)
+++ openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/deployer/WebappDeployer.java Sun Jan 15 22:06:41 2012
@@ -118,10 +118,10 @@ public class WebappDeployer implements D
}
final DeploymentExceptionManager dem = SystemInstance.get().getComponent(DeploymentExceptionManager.class);
- if (dem.hasDelpoymentFailed(info)) {
- Exception tre = dem.getDelpoymentException(info);
- // we don't need this exceptino anymore
- dem.clearDelpoymentException(info);
+ if (dem.hasDeploymentFailed()) {
+ final Exception tre = dem.getLastException();
+ // we don't need this exception anymore
+ dem.clearLastException(info);
throw tre;
}
Modified: openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java?rev=1231771&r1=1231770&r2=1231771&view=diff
==============================================================================
--- openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java (original)
+++ openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java Sun Jan 15 22:06:41 2012
@@ -28,6 +28,6 @@ import javax.ejb.TransactionManagementTy
@TransactionManagement(TransactionManagementType.BEAN)
public class ExceptionManagerFacadeBean implements ExceptionManagerFacade {
public Exception exception() {
- return SystemInstance.get().getComponent(DeploymentExceptionManager.class).getFirstException();
+ return SystemInstance.get().getComponent(DeploymentExceptionManager.class).getLastException();
}
}