You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Marc Eckart <ma...@googlemail.com> on 2010/01/05 13:53:12 UTC

S2: Problem Infinite recursion detected

Hi,

We have an action which causes an Infinite recursion detection. I
don't have any idea why this is happening. When we call the action the
first time everything is ok. But when we call this the second time we
get this exception:

05.01.2010 13:45:00 org.apache.catalina.core.StandardWrapperValve invoke
SCHWERWIEGEND: Servlet.service() for servlet default threw exception
Infinite recursion detected: [/rmr/calcSumsAndSavePersonData!calcSums,
/rmr/iwa.error, /rmr/iwa.error] - [unknown location]
	at com.opensymphony.xwork2.ActionChainResult.execute(ActionChainResult.java:207)
	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
	at com.opensymphony.xwork2.ActionChainResult.execute(ActionChainResult.java:229)
	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
	at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at de.seb.iwa.view.sec.UserResourcesFilter.doFilter(UserResourcesFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at de.seb.iwa.view.user.UserInfoFilter.doFilter(UserInfoFilter.java:67)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at de.seb.iwa.view.login.LoginFilter.doFilter(LoginFilter.java:124)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at de.seb.portal.signature.IIWSignatureFilter.doFilter(IIWSignatureFilter.java:144)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)


The ftl which causes the error when the action is triggered the second time:


<div id="jahrFormFields" class="fieldset">
<h1>Gueltigkeit</h1>
<div class="addcontent">
	<label class="medium result">Jahr</label>
	<@s.textfield name="privatBilanz.jahr" cssClass="small numeric
result" tabindex="10"/>
	<span class="spacer">&nbsp;</span>
  <br />
</div>
</div>
<br />

<div id="aktivaFormFields" class="fieldset">
<h1>Aktiva</h1>
<div class="content">

  <label class="medium">Immobilien</label>
  <@s.textfield key="privatBilanz.summeImmobilien"
value="%{getText('format.amount',{privatBilanz.summeImmobilien})}"
cssClass="small numeric" tabindex="10"/>
  <span class="euro spacer">&euro;</span>
  <br/>


</div> <!-- content -->
</div> <!-- fieldset -->
<br/>

<!-- ---------------------------------------------------------------------------
-->
<!-- Bind SaveButton with onclick
<!-- ---------------------------------------------------------------------------
-->

<@s.url id="privatBilanzUrl" action="calcSumsAndSavePersonData"
includeParams="none">
	<@s.param name="target">privatBilanz</...@s.param>
</...@s.url>

<script language="JavaScript" type="text/javascript">
	var saveButton = $('#saveButton');
	saveButton.unbind("click");
	saveButton.click(function() {
		alert('${privatBilanzUrl}');
		showMask('privatBilanzWF', '${privatBilanzUrl}')
	});	
</script>

The Javascript:

	function showMask(workflowItemName, url) {
		var params = $("form").serialize();
		updateDiv('sitecontent', url, params);
		
	}

function updateDiv(div, actionUrl, params) {
	$('#'+div).load(actionUrl, params);
}

Struts.xml

		<action name="calcSumsAndSavePersonData" method="calcSums"
class="de.seb.rmr.view.action.EditPerson">
			<result name="success" type="tiles">rmr.Overview</result>
			<result name="privatBilanz" type="freemarker"
>/de/seb/rmr/view/ftl/hardfacts/privatBilanz.ftl</result>
			<result name="bilanzAktiva" type="freemarker"
>/de/seb/rmr/view/ftl/hardfacts/bilanzAktiva.ftl</result>
			<result name="bilanzPassiva" type="freemarker"
>/de/seb/rmr/view/ftl/hardfacts/bilanzPassiva.ftl</result>
			<result name="bilanzKennziffern" type="freemarker"
>/de/seb/rmr/view/ftl/hardfacts/bilanzKennziffern.ftl</result>
		</action>


I have no clue. No chained actions nothing. When I trigger the action
the second time, the action is not reached anymore.
I have never seen anything like this before.

I guess it has something to do with the form data.

Anyone any idea?

/Marc

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org