[
https://issues.apache.org/jira/browse/WW-4066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13662035#comment-13662035
]
Chris Cranford commented on WW-4066:
------------------------------------
bq. If you take a look on paramsPrepareParamsStack you will spot that the
params interceptor is listed two times - before and after prepare, but there is
also modelDriven listed just before the second params which will put non-null
Model onto stack.
I don't recall specifically why the interceptor stack was designed that way
beyond perhaps being backward compatible. I recall a discussion sometime back
where it was decided that the interceptor stack would be designed this way.
I just applied 2.3.4.1 to the sample application and with devMode=true, I do
see where the OGNL exceptions are written to the logs, perhaps I had overlooked
them prior. What boggles me however, is that StringIndexOutOfBoundsException
isn't thrown as a side affect. And the stack trace related to that exception
is coming from {{LocalizedTextUtil}}. Why is that just now surfacing but not
in prior builds?
> Submitting form with parameters using brackets while devMode=true yields
> StringIndexOutOfBoundsException
> --------------------------------------------------------------------------------------------------------
>
> Key: WW-4066
> URL: https://issues.apache.org/jira/browse/WW-4066
> Project: Struts 2
> Issue Type: Bug
> Components: Core Actions
> Affects Versions: 2.3.14
> Reporter: Chris Cranford
> Assignee: Lukasz Lenart
> Fix For: 2.3.15
>
> Attachments: testcase.zip
>
>
> Our BaseAction which extends ActionSupport overrides the addActionMessage()
> with the following:
> {code:java}
> @Override
> public void addActionMessage(String message) {
> super.addActionMessage(getText(message));
> }
> {code}
> With the above method in place during devMode=true, the following error stack
> trace occurs:
> {noformat}
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
> at java.lang.String.substring(String.java:1871)
> at
> com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:426)
> at
> com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:362)
> at
> com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:208)
> at
> com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:123)
> at com.opensymphony.xwork2.ActionSupport.getText(ActionSupport.java:103)
> at com.setech.dw.common.web.BaseAction.addActionMessage(BaseAction.java:209)
> at
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:337)
> at
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:241)
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira