Hi ,
I also verified the exactly same error happens in struts 2.5.5 with tiles 3.0.7.
if we try to use action tag as below with tiles result it's goes in infinite
loop and throws it throws java.lang.StackOverflowError,
<s:action name="myTestAction" namespace="/tiles" executeResult="true"/>
--------Layout.jsp
<body> <tiles:insertAttribute name="header"/> <tiles:insertAttribute
name="body"/> <p>Notice that this is a layout made in JSP</p> <!-- issue
with the action --> <s:action name="myTestAction" namespace="/tiles"
executeResult="true"/></body></html>
------------- struts.xml <action name="myTestAction"> <result
type="tiles">showcase.index.actionResult</result> <result
name="success" type="tiles">showcase.index.actionResult</result> </action>
------------------tiles.xml
<definition name="showcase.index" template="/WEB-INF/tiles/layout.jsp">
<put-attribute name="title" value="Tiles Showcase"/> <put-attribute
name="header" value="/WEB-INF/tiles/header.jsp"/> <put-attribute
name="body" value="/WEB-INF/tiles/body.jsp"/> </definition>
<definition name="showcase.index.actionResult"
template="/WEB-INF/tiles/actionResult.jsp"> <put-attribute name="title"
value="Action Result"/></definition>
Let me know if somebody faced same issue.
Regards,Vishal
On Saturday, 19 November 2016, 10:28, Vishal Jhagadiawala
<[email protected]> wrote:
Hi ,
I have upgraded my struts application to version 2.3.30 and apache-tiles 2.2.2
and I am facing issue with s:action tag and tiles result. it goes in recursive
loop and throws StackOverflowError as below.
also I am able to reproduce this issue in showcase application, I have outlined
the tiles.xml , struts-tile.xml and layout.jsp as below.
it throws java.lang.StackOverflowError: null at
org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:230)
at
org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:230)
at
org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:230)
at
org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:230)
.................. (truncated) ................. at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
at
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
at
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
at
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) at
org.apache.struts2.components.ActionComponent.executeAction(ActionComponent.java:288)
at org.apache.struts2.components.ActionComponent.end(ActionComponent.java:172)
at
org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
at
org.apache.jsp.WEB_002dINF.tiles.layout_jsp._jspx_meth_s_005faction_005f0(layout_jsp.java:210)
at org.apache.jsp.WEB_002dINF.tiles.layout_jsp._jspService(layout_jsp.java:109)
Here is my usage,
Layout.jsp
<html> <head><title>Struts2 Showcase - <tiles:getAsString
name="title"/></title></head><body> <tiles:insertAttribute name="header"/>
<tiles:insertAttribute name="body"/> <p>Notice that this is a layout made in
JSP</p> <!-- Vishal- action tag which is causing issue with tiles
result --> <s:action name="myTestAction" namespace="/tiles"
executeResult="true" /></body></html>
tiles.xml
<definition name="showcase.index" template="/WEB-INF/tiles/layout.jsp">
<put-attribute name="title" value="Tiles Showcase"/> <put-attribute
name="header" value="/WEB-INF/tiles/header.jsp"/> <put-attribute
name="body" value="/WEB-INF/tiles/body.jsp"/> </definition> <!--
Vishal-- my definition --> <definition name="showcase.index.actionResult"
template="/WEB-INF/tiles/actionTileResult.jsp"> <put-attribute
name="title" value="Tiles Result from action"/> </definition>
struts-tiles.xml
<action name="index"> <result
type="tiles">showcase.index</result> <result name="success"
type="tiles">showcase.index</result> </action>
<!-- my test action to replicate the issue --> <action
name="myTestAction"> <result
type="tiles">showcase.index.actionResult</result> <result
name="success" type="tiles">showcase.index.actionResult</result>
</action>
actionTileResult.jsp
<tiles:importAttribute name="title" scope="request"/><html>
<head><title>Action tile result <tiles:getAsString
name="title"/></title></head><body> <p>Notice that this is a
jsp</p></body></html>
Please let me know anybody faced similar issue and any solution to it.
Regards,Vishal