From 9cab14bcf709bfb304d20db3bf0b732f75327548 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Tue, 29 Oct 2013 07:01:49 +0000 Subject: [PATCH] WW-4044 Solves problem with infinitive loop when used with tag and attribute executeResult is set to "true" git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@1536598 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/struts2/views/tiles/TilesResult.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/plugins/tiles3/src/main/java/org/apache/struts2/views/tiles/TilesResult.java b/plugins/tiles3/src/main/java/org/apache/struts2/views/tiles/TilesResult.java index 6172b9393..a774edbe7 100644 --- a/plugins/tiles3/src/main/java/org/apache/struts2/views/tiles/TilesResult.java +++ b/plugins/tiles3/src/main/java/org/apache/struts2/views/tiles/TilesResult.java @@ -59,16 +59,23 @@ public class TilesResult extends ServletDispatcherResult { @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; + } + }