Author: pbenedict Date: Fri Aug 24 20:54:59 2007 New Revision: 569606 URL: http://svn.apache.org/viewvc?rev=569606&view=rev Log: STR-3088: Treat blank strings as *null*
Modified: struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenLexer.java struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.g struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.java struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.java struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.txt struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/test/java/org/apache/struts/validator/TestValidWhen.java Modified: struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenLexer.java URL: http://svn.apache.org/viewvc/struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenLexer.java?rev=569606&r1=569605&r2=569606&view=diff ============================================================================== --- struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenLexer.java (original) +++ struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenLexer.java Fri Aug 24 20:54:59 2007 @@ -1,4 +1,4 @@ -// $ANTLR 2.7.2: "ValidWhenParser.g" -> "ValidWhenLexer.java"$ +// $ANTLR 2.7.6 (2005-12-22): "ValidWhenParser.g" -> "ValidWhenLexer.java"$ /* * $Id$ Modified: struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.g URL: http://svn.apache.org/viewvc/struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.g?rev=569606&r1=569605&r2=569606&view=diff ============================================================================== --- struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.g (original) +++ struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.g Fri Aug 24 20:54:59 2007 @@ -57,12 +57,12 @@ boolean intCompare = true; if ((v1 == null) || (v2 == null)) { if (String.class.isInstance(v1)) { - if (((String) v1).length() == 0) { + if (((String) v1).trim().length() == 0) { v1 = null; } } if (String.class.isInstance(v2)) { - if (((String) v2).length() == 0) { + if (((String) v2).trim().length() == 0) { v2 = null; } } @@ -182,7 +182,7 @@ Object i3 = argStack.pop(); argStack.push(ValidatorUtils.getValueAsString(form, i3 + "[" + i4 + "]" + i5)); } -| identifier LBRACKET integer RBRACKET LBRACKET { +| identifier LBRACKET integer RBRACKET { Object i7 = argStack.pop(); Object i6 = argStack.pop(); argStack.push(ValidatorUtils.getValueAsString(form, i6 + "[" + i7 + "]")); Modified: struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.java URL: http://svn.apache.org/viewvc/struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.java?rev=569606&r1=569605&r2=569606&view=diff ============================================================================== --- struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.java (original) +++ struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.java Fri Aug 24 20:54:59 2007 @@ -1,4 +1,4 @@ -// $ANTLR 2.7.2: "ValidWhenParser.g" -> "ValidWhenParser.java"$ +// $ANTLR 2.7.6 (2005-12-22): "ValidWhenParser.g" -> "ValidWhenParser.java"$ /* * $Id$ @@ -69,12 +69,12 @@ boolean intCompare = true; if ((v1 == null) || (v2 == null)) { if (String.class.isInstance(v1)) { - if (((String) v1).length() == 0) { + if (((String) v1).trim().length() == 0) { v1 = null; } } if (String.class.isInstance(v2)) { - if (((String) v2).length() == 0) { + if (((String) v2).trim().length() == 0) { v2 = null; } } @@ -273,12 +273,11 @@ argStack.push(ValidatorUtils.getValueAsString(form, i3 + "[" + i4 + "]" + i5)); } - else if ((LA(1)==IDENTIFIER) && (LA(2)==LBRACKET) && ((LA(3) >= DECIMAL_LITERAL && LA(3) <= OCTAL_LITERAL)) && (LA(4)==RBRACKET) && (LA(5)==LBRACKET)) { + else if ((LA(1)==IDENTIFIER) && (LA(2)==LBRACKET) && ((LA(3) >= DECIMAL_LITERAL && LA(3) <= OCTAL_LITERAL)) && (LA(4)==RBRACKET) && (_tokenSet_0.member(LA(5)))) { identifier(); match(LBRACKET); integer(); match(RBRACKET); - match(LBRACKET); Object i7 = argStack.pop(); Object i6 = argStack.pop(); Modified: struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.java URL: http://svn.apache.org/viewvc/struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.java?rev=569606&r1=569605&r2=569606&view=diff ============================================================================== --- struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.java (original) +++ struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.java Fri Aug 24 20:54:59 2007 @@ -1,4 +1,4 @@ -// $ANTLR 2.7.2: "ValidWhenParser.g" -> "ValidWhenParser.java"$ +// $ANTLR 2.7.6 (2005-12-22): "ValidWhenParser.g" -> "ValidWhenParser.java"$ /* * $Id$ Modified: struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.txt URL: http://svn.apache.org/viewvc/struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.txt?rev=569606&r1=569605&r2=569606&view=diff ============================================================================== --- struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.txt (original) +++ struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.txt Fri Aug 24 20:54:59 2007 @@ -1,4 +1,4 @@ -// $ANTLR 2.7.2: ValidWhenParser.g -> ValidWhenParserTokenTypes.txt$ +// $ANTLR 2.7.6 (2005-12-22): ValidWhenParser.g -> ValidWhenParserTokenTypes.txt$ ValidWhenParser // output token vocab name DECIMAL_LITERAL=4 HEX_LITERAL=5 Modified: struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/test/java/org/apache/struts/validator/TestValidWhen.java URL: http://svn.apache.org/viewvc/struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/test/java/org/apache/struts/validator/TestValidWhen.java?rev=569606&r1=569605&r2=569606&view=diff ============================================================================== --- struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/test/java/org/apache/struts/validator/TestValidWhen.java (original) +++ struts/struts1/branches/STRUTS_1_3_BRANCH/core/src/test/java/org/apache/struts/validator/TestValidWhen.java Fri Aug 24 20:54:59 2007 @@ -197,6 +197,14 @@ // Null doParse("(*this* == null)", testBean, 0, "stringValue2", true); + + // 0-length empty string + testBean.setStringValue2(""); + doParse("(*this* == null)", testBean, 0, "stringValue2", true); + + // N-length empty string + testBean.setStringValue2(" "); + doParse("(*this* == null)", testBean, 0, "stringValue2", true); } /**