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

Reply via email to