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(); } }