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;
+ }
+
}