struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "CRANFORD, CHRIS" <Chris.Cranf...@setech.com>
Subject Re: Parameter problem with names using '[' and ']'
Date Fri, 10 May 2013 12:54:26 GMT
Yes the issue exists in .14 since that is what we are testing under.
Sent from my Verizon Wireless BlackBerry

-----Original Message-----
From: Lukasz Lenart <lukaszlenart@apache.org>
Date: Fri, 10 May 2013 06:42:55 
To: Struts Users Mailing List<user@struts.apache.org>
Reply-To: Struts Users Mailing List <user@struts.apache.org>
Subject: Re: Parameter problem with names using '[' and ']'

Hi Chris,

Have you tried to use 2.3.14? For some reasons 2.3.12 was a bit impaired ;-)


Regards
-- 
Ɓukasz
+ 48 606 323 122 http://www.lenart.org.pl/

2013/5/9 CRANFORD, CHRIS <Chris.Cranford@setech.com>:
> Up until 2.3.12, we've used forms that contained parameter names that used '[' and ']'
and those forms worked in both devMode=true and devMode=false.  It appears once 2.3.12 was
released, this is no longer the case when devMode=true.  When forms are submitted, I get the
following stack trace exception thrown:
>
> 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)
>
> If I remove our addActionMessage() override from the base action class, I no longer get
this error.   It doesn't make any sense to me because our addActionMessage() override is nothing
more than the following:
>
>                 public void addActionMessage(String message) {
>                                 // performs localization string translation and adds
the message to parent class
>                                 super.addActionMessage(getText(message));
>                 }
>
> I have yet to find anywhere that says getText() should throw a StringIndexOutOfBoundsException
for any reason.
>
> Furthermore, I've noticed that we're also getting tremendous dumps from OGNL's runtime
about its inability to find setters or being able to set values on the action, even though
when dumping the parameter list given to the action, the parameter list is identical to what
it always has been previously.
>
> For example:
>
> 2013-05-09 08:35:37,635 ERROR [com.opensymphony.xwork2.interceptor.ParametersInterceptor]:
Developer Notification (set struts.devMode to false to disable this message):
> Unexpected Exception caught setting 'stockStatus' on 'class com.setech.dw.inventory.web.ItemSearchAction:
Error setting expression 'stockStatus' with value ['A', ]
> Error setting expression 'stockStatus' with value ['A', ] - [unknown location]
> Caused by: No object in the CompoundRoot has a publicly accessible property named 'stockStatus'
(no setter could be found). - [unknown location]
>        at com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.setProperty(CompoundRootAccessor.java:106)
>        at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2315)
>        at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
>        at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
>        at ognl.SimpleNode.setValue(SimpleNode.java:301)
>        at ognl.Ognl.setValue(Ognl.java:737)
>        at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:224)
>        at com.opensymphony.xwork2.ognl.OgnlValueStack.trySetValue(OgnlValueStack.java:187)
>        at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:174)
>
> In fact, ItemSearchCriteria is exposed via the ModelDriven interface, stockStatus is
a private property with public getter/setters.
>
> I can disable devMode and of course these messages disappear, but they don't make any
valid sense to me because the values are being correctly set in the ItemSearchCriteria model
object.
>
> I'm concerned that we are likely stuck at 2.3.4 or won't be capable of making use of
the devMode feature during development because of the side affects we are experiencing with
the latest two GA releases of the framework.
> ___________________________________________________________
> Chris Cranford
> SAP/Oracle/J2EE Applications Developer
> SETECH Inc & Companies
> 903 Industrial Drive, Murfreesboro TN 37129
> Phone: (615) 890-1755 x361, Fax: (615) 890-9057, Mobile: (704) 650-1042
> Email: chris.cranford@setech.com<mailto:chris.cranford@setech.com>

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



Email secured by Check Point
Mime
View raw message