[
https://issues.apache.org/jira/browse/WW-4184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14113435#comment-14113435
]
Lukasz Lenart commented on WW-4184:
-----------------------------------
Not sure what you want to achieve, some error message or what/
> When a getter of an action calls getText("getterName.something"), method call
> stack overflow occurs
> ---------------------------------------------------------------------------------------------------
>
> Key: WW-4184
> URL: https://issues.apache.org/jira/browse/WW-4184
> Project: Struts 2
> Issue Type: Bug
> Affects Versions: 2.3.15.1
> Environment: Windows Vista, Java 7, Tomcat 7
> Reporter: recyclebin5385
> Priority: Minor
> Fix For: 2.3.18
>
> Attachments: WebContent.zip, src.zip
>
>
> Under a certain condition, calling a getter of an action causes method call
> stack overflow.
> If a jsp file contains a <s:debug /> tag, it doesn't work and throws
> java.util.ConcurrentModificationException.
> The condition is described below.
> - The action class extends com.opensymphony.xwork2.ActionSupport.
> - The action class has a getter and the getter calls the action class's
> method getText().
> The argument of getText() is like "getterName.something".
> If the getter is getFoo(), the argument is like 'foo.bar'.
> - An *empty* properties file exists with the same name as the action class
> in the same package.
> If the action class is TestAction, the name of the properties file is
> TestAction.properties
> - The JSP file has tag <s:debug />.
> It seems that <s:debug /> tries to call getFoo() and causes call stack
> overflow.
> It has something to do with the problem?
> 1. <s:debug /> calls the action class's method getFoo().
> 2. getFoo() calls getText("foo.bar").
> 3. getText() calls LocalizedTextUtil.findText(Class aClass, String
> aTextName, Locale locale, String defaultMessage, Object[] args, ValueStack
> valueStack).
> 4. There is no property named foo.bar, so LocalizedTextUtil.findText() tries
> to get "foo.bar" from the value stack.
> 5. The action class instance is on the top of the value stack, so the action
> class's getFoo() is called.
> 6. Go back to 2. This loop continues infinitely....
--
This message was sent by Atlassian JIRA
(v6.2#6252)