Author: lukaszlenart
Date: Tue Oct 29 07:01:49 2013
New Revision: 1536598

URL: http://svn.apache.org/r1536598
Log:
WW-4044 Solves problem with infinitive loop when used with <s:action/> tag and 
attribute executeResult is set to "true"

Modified:
    
struts/struts2/trunk/plugins/tiles3/src/main/java/org/apache/struts2/views/tiles/TilesResult.java

Modified: 
struts/struts2/trunk/plugins/tiles3/src/main/java/org/apache/struts2/views/tiles/TilesResult.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/tiles3/src/main/java/org/apache/struts2/views/tiles/TilesResult.java?rev=1536598&r1=1536597&r2=1536598&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/tiles3/src/main/java/org/apache/struts2/views/tiles/TilesResult.java
 (original)
+++ 
struts/struts2/trunk/plugins/tiles3/src/main/java/org/apache/struts2/views/tiles/TilesResult.java
 Tue Oct 29 07:01:49 2013
@@ -59,16 +59,23 @@ public class TilesResult extends Servlet
 
     @Override
     public void doExecute(String location, ActionInvocation invocation) throws 
Exception {
-        setLocation(location);
         ServletContext context = ServletActionContext.getServletContext();
-        ApplicationContext applicationContext = 
ServletUtil.getApplicationContext(context);
-        TilesContainer container = 
TilesAccess.getContainer(applicationContext);
-
         HttpServletRequest request = ServletActionContext.getRequest();
         HttpServletResponse response = ServletActionContext.getResponse();
 
+        ApplicationContext applicationContext = 
ServletUtil.getApplicationContext(context);
         ServletRequest servletRequest = new ServletRequest(applicationContext, 
request, response);
+
+        TilesContainer container = initTilesContainer(applicationContext, 
servletRequest);
+
+        container.startContext(servletRequest);
         container.render(location, servletRequest);
     }
 
+    protected TilesContainer initTilesContainer(ApplicationContext 
applicationContext, ServletRequest servletRequest) {
+        TilesContainer container = 
TilesAccess.getContainer(applicationContext);
+        TilesAccess.setCurrentContainer(servletRequest, container);
+        return container;
+    }
+
 }


Reply via email to