Author: olamy Date: Thu Jan 31 13:11:49 2013 New Revision: 1440948 URL: http://svn.apache.org/viewvc?rev=1440948&view=rev Log: [MTOMCAT-186] Closing executable JAR does not call ServletContextListener.contextDestroyed()
Modified: tomcat/maven-plugin/trunk/pom.xml tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java Modified: tomcat/maven-plugin/trunk/pom.xml URL: http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/pom.xml?rev=1440948&r1=1440947&r2=1440948&view=diff ============================================================================== --- tomcat/maven-plugin/trunk/pom.xml (original) +++ tomcat/maven-plugin/trunk/pom.xml Thu Jan 31 13:11:49 2013 @@ -707,6 +707,7 @@ <exclude>*.sh</exclude> <exclude>.git/**</exclude> <exclude>.idea/**</exclude> + <exclude>out/**</exclude> <exclude>.extract/**</exclude> <exclude>*.patch</exclude> </excludes> Modified: tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java URL: http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java?rev=1440948&r1=1440947&r2=1440948&view=diff ============================================================================== --- tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java (original) +++ tomcat/maven-plugin/trunk/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java Thu Jan 31 13:11:49 2013 @@ -26,6 +26,8 @@ import org.apache.catalina.startup.Catal import org.apache.catalina.startup.ContextConfig; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.valves.AccessLogValve; +import org.apache.juli.ClassLoaderLogManager; +import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.http.fileupload.FileUtils; import org.apache.tomcat.util.http.fileupload.IOUtils; @@ -46,6 +48,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; import java.util.StringTokenizer; +import java.util.logging.LogManager; /** * FIXME add junit for that but when https://issues.apache.org/bugzilla/show_bug.cgi?id=52028 fixed @@ -399,12 +402,49 @@ public class Tomcat7Runner } tomcat.start(); + + Runtime.getRuntime().addShutdownHook( new TomcatShutdownHook() ); + } waitIndefinitely(); } + protected class TomcatShutdownHook + extends Thread + { + + protected TomcatShutdownHook() + { + // no op + } + + @Override + public void run() + { + try + { + Tomcat7Runner.this.stop(); + } + catch ( Throwable ex ) + { + ExceptionUtils.handleThrowable( ex ); + System.out.println( "fail to properly shutdown Tomcat:" + ex.getMessage() ); + } + finally + { + // If JULI is used, shut JULI down *after* the server shuts down + // so log messages aren't lost + LogManager logManager = LogManager.getLogManager(); + if ( logManager instanceof ClassLoaderLogManager ) + { + ( (ClassLoaderLogManager) logManager ).shutdown(); + } + } + } + } + private URL getContextXml( String warPath ) throws IOException { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org