[ 
https://issues.apache.org/jira/browse/WW-4066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13667799#comment-13667799
 ] 

Johan Ström commented on WW-4066:
---------------------------------

Hi,

I'd like to report that I have similar problems with 2.3.14.2.
My action implements both ParameterAware and ParameterNameAware, and accepts a 
set of params via setters. With the WW-3973 change, this now allows setting of 
a lot of other parameters (if it is an "acceptable name" OR allowed by 
acceptableParameterName() it is let through). To avoid this and only really 
allow the ones I want, I tried this in the interceptor stack:

{code}
<interceptor-ref name="params">
<param 
name="acceptParamNames">ThisIsNotARealParameter_BUT_It_must_be_set_to_work</param>
</interceptor-ref>
{code}

If the value is blank the acceptParamNames are not even regarded, so I put a 
dummy value there.. 

This however results in failure to set even basic Strings:

{quote}
public void setSort(String sort)
{
 ....
}
{quote} 

A simple call to ?simpleparam=abc&sort=name results in this:

{code}
ERROR (com.opensymphony.xwork2.interceptor.ParametersInterceptor:38) - 
Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'sort' on 'class com.myapp.MyActionClass: 
Error setting expression 'sort' with value ['name', ]
Error setting expression 'sort' with value ['name', ] - [unknown location]
{code}

I do NOT get an error for the simpleparam, which is not OK'ed by the 
acceptableParamNames() method so that is not expected. But for the simple 
'sort' parameter, it refuses to work..
 
If I remove the acceptParamNames setting, everything works as expected.

                
> 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.16
>
>         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

Reply via email to