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

Reply via email to