You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ol...@apache.org on 2013/01/31 14:11:50 UTC

svn commit: r1440948 - in /tomcat/maven-plugin/trunk: pom.xml tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org