[
https://issues.apache.org/struts/browse/STR-2997?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Henri Yandell closed STR-2997.
------------------------------
Resolution: Fixed
svn ci -m "Applying unit test and fix from STR-2997. Antlr 2.7.2 used to
regenerate the parser/lexer. "
Sending
core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenLexer.java
Sending
core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.g
Sending
core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.java
Sending
core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.java
Sending
core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.txt
Sending core/src/test/java/org/apache/struts/validator/TestValidWhen.java
Transmitting file data ......
Committed revision 504715.
> [validator] validwhen strings don't work right
> ----------------------------------------------
>
> Key: STR-2997
> URL: https://issues.apache.org/struts/browse/STR-2997
> Project: Struts 1
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.2.4, 1.2.9
> Reporter: Eric Haszlakiewicz
> Fix For: 1.3.7
>
> Attachments: STR-2997-fix.patch, STR-2997-test.patch
>
>
> I originally noticed this problem with struts 1.2.4, but upgrading to 1.2.9
> didn't fix it. I can't upgrade to 1.3.5 right now so I don't know if it
> still exists there or not.
> It seems that the content of string that is usable by the validwhen validator
> is oddly limited. It only appears to allow letters and a few other random
> characters. This makes the validator mostly useless.
> I tried to define a field validation using the validwhen validator:
> <field property="myfield" depends="validwhen">
> <arg0 key="prop.myfield"/>
> <var>
> <var-name>test</var-name>
> <var-value>(otherfield != "foo:bar")</var-value>
> </var>
> </field>
> I got an error that looked like this:
> ValidWhen Error for field ' myfield' - line 1:20: expecting ''', found ':'
> I tried it with a few other characters, but there didn't seem to be any
> pattern to what is allowed and what isn't.
> not ok:
> :@#$%^&;,/+
> ok:
> *().<>-_=
> (not a comprehensive list, I didn't try everything)
> I tried using both single and double quotes, but it didn't seem to make a
> difference.
> This problem seems to have been mentioned on the mailing lists a few times,
> but I wasn't able to find any answers.
> Looking at the definition of STRING_LITERAL in ValidWhenParser.g, it seems
> like any non-quote character should be allowed:
>
> STRING_LITERAL : ('\'' (~'\'')+ '\'') | ('\"' (~'\"')+ '\"') ;
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.