struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Cranford (JIRA)" <>
Subject [jira] [Commented] (WW-4066) Submitting form with parameters using brackets while devMode=true yields StringIndexOutOfBoundsException
Date Fri, 24 May 2013 21:45:21 GMT


Chris Cranford commented on WW-4066:

In doing a bit more of my own testing, I found under the {{OgnlException}} exceptions
are thrown even during the first {{params}} portion of the {{paramsPrepareParamsStack}} as
seen here:

WARNING: Error setting expression 'itemSearchTypes[3]' with value '[Ljava.lang.String;@63336706'
ognl.OgnlException: target is null for setProperty(null, "3", [Ljava.lang.String;@63336706)

It appears then to me the only visible difference here is that no action messages were ever
being generated and added to the action's message list for either case of the invocation of
the {{params}} portion of the interceptor stack in the older builds; where-as in the later
builds these exceptions are actually triggering developer warnings.  Because these warnings
included a '[' character, that is what provoked the {{getText()}} method to throw an exception
with our original base action implementation.

But I don't see how the {{ModelDrivenCreateAware}} interface solves the problem of where the
property exists on the model but not the action, as seen in the demo application added.  

 - First {{ParametersInterceptor}} call populates the action instance.  
 - The {{ModelDrivenInterceptor}} simply pushes model from {{getModel}} onto the top of the
 - Second {{ParametersInterceptor}} call populates the model instance.

If we alter this above functionality in anyway, would it not have a wider impact on those
using that particular interceptor stack, right?
> Submitting form with parameters using brackets while devMode=true yields StringIndexOutOfBoundsException
> --------------------------------------------------------------------------------------------------------
>                 Key: WW-4066
>                 URL:
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Actions
>    Affects Versions: 2.3.14
>            Reporter: Chris Cranford
>            Assignee: Lukasz Lenart
>             Fix For: 2.3.16
>         Attachments:
> Our BaseAction which extends ActionSupport overrides the addActionMessage() with the
> {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(
>   at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(
>   at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(
>   at com.opensymphony.xwork2.TextProviderSupport.getText(
>   at com.opensymphony.xwork2.TextProviderSupport.getText(
>   at com.opensymphony.xwork2.ActionSupport.getText(
>   at com.setech.dw.common.web.BaseAction.addActionMessage(
>   at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(
>   at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(
> {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:

View raw message