You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2013/04/26 08:24:11 UTC

svn commit: r1476062 - in /struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher: Dispatcher.java ng/filter/StrutsPrepareAndExecuteFilter.java ng/filter/StrutsPrepareFilter.java ng/listener/StrutsListener.java ng/servlet/StrutsServlet.java

Author: lukaszlenart
Date: Fri Apr 26 06:24:11 2013
New Revision: 1476062

URL: http://svn.apache.org/r1476062
Log:
WW-4058 Adds new method to cleanup after Dispatcher initialisation

Modified:
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/listener/StrutsListener.java
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=1476062&r1=1476061&r2=1476062&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Fri Apr 26 06:24:11 2013
@@ -815,6 +815,7 @@ public class Dispatcher {
      * @see org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper
      */
     public void cleanUpRequest(HttpServletRequest request) {
+        ContainerHolder.clear();
         if (!(request instanceof MultiPartRequestWrapper)) {
             return;
         }
@@ -895,7 +896,15 @@ public class Dispatcher {
         }
     }
 
-    
+    /**
+     * Cleanup any resources used to initialise Dispatcher
+     */
+    public void cleanUpAfterInit() {
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Cleaning up resources used to init Dispatcher");
+        }
+        ContainerHolder.clear();
+    }
 
     /**
      * Provide an accessor class for static XWork utility.

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java?rev=1476062&r1=1476061&r2=1476062&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java Fri Apr 26 06:24:11 2013
@@ -45,10 +45,11 @@ public class StrutsPrepareAndExecuteFilt
 
     public void init(FilterConfig filterConfig) throws ServletException {
         InitOperations init = new InitOperations();
+        Dispatcher dispatcher = null;
         try {
             FilterHostConfig config = new FilterHostConfig(filterConfig);
             init.initLogging(config);
-            Dispatcher dispatcher = init.initDispatcher(config);
+            dispatcher = init.initDispatcher(config);
             init.initStaticContentLoader(config, dispatcher);
 
             prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
@@ -57,6 +58,9 @@ public class StrutsPrepareAndExecuteFilt
 
             postInit(dispatcher, filterConfig);
         } finally {
+            if (dispatcher != null) {
+                dispatcher.cleanUpAfterInit();
+            }
             init.cleanup();
         }
 

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java?rev=1476062&r1=1476061&r2=1476062&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java Fri Apr 26 06:24:11 2013
@@ -44,16 +44,20 @@ public class StrutsPrepareFilter impleme
 
 	public void init(FilterConfig filterConfig) throws ServletException {
         InitOperations init = new InitOperations();
+        Dispatcher dispatcher = null;
         try {
             FilterHostConfig config = new FilterHostConfig(filterConfig);
             init.initLogging(config);
-            Dispatcher dispatcher = init.initDispatcher(config);
+            dispatcher = init.initDispatcher(config);
 
             prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
 			this.excludedPatterns = init.buildExcludedPatternsList(dispatcher);
 
             postInit(dispatcher, filterConfig);
         } finally {
+            if (dispatcher != null) {
+                dispatcher.cleanUpAfterInit();
+            }
             init.cleanup();
         }
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/listener/StrutsListener.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/listener/StrutsListener.java?rev=1476062&r1=1476061&r2=1476062&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/listener/StrutsListener.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/listener/StrutsListener.java Fri Apr 26 06:24:11 2013
@@ -20,8 +20,6 @@
  */
 package org.apache.struts2.dispatcher.ng.listener;
 
-import org.apache.struts2.ServletActionContext;
-import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsStatics;
 import org.apache.struts2.dispatcher.Dispatcher;
 import org.apache.struts2.dispatcher.ng.InitOperations;
@@ -41,15 +39,19 @@ public class StrutsListener implements S
 
     public void contextInitialized(ServletContextEvent sce) {
        InitOperations init = new InitOperations();
+        Dispatcher dispatcher = null;
         try {
             ListenerHostConfig config = new ListenerHostConfig(sce.getServletContext());
             init.initLogging(config);
-            Dispatcher dispatcher = init.initDispatcher(config);
+            dispatcher = init.initDispatcher(config);
             init.initStaticContentLoader(config, dispatcher);
 
             prepare = new PrepareOperations(config.getServletContext(), dispatcher);
             sce.getServletContext().setAttribute(StrutsStatics.SERVLET_DISPATCHER, dispatcher);
         } finally {
+            if (dispatcher != null) {
+                dispatcher.cleanUpAfterInit();
+            }
             init.cleanup();
         }
     }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java?rev=1476062&r1=1476061&r2=1476062&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java Fri Apr 26 06:24:11 2013
@@ -46,15 +46,19 @@ public class StrutsServlet extends HttpS
     @Override
     public void init(ServletConfig filterConfig) throws ServletException {
         InitOperations init = new InitOperations();
+        Dispatcher dispatcher = null;
         try {
             ServletHostConfig config = new ServletHostConfig(filterConfig);
             init.initLogging(config);
-            Dispatcher dispatcher = init.initDispatcher(config);
+            dispatcher = init.initDispatcher(config);
             init.initStaticContentLoader(config, dispatcher);
 
             prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
             execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher);
         } finally {
+            if (dispatcher != null) {
+                dispatcher.cleanUpAfterInit();
+            }
             init.cleanup();
         }
     }