Michael J Chane created VALIDATOR-316:
-----------------------------------------
Summary: The GenericTypeValidator.formateDate method handles the
strict mode check inproperly
Key: VALIDATOR-316
URL: https://issues.apache.org/jira/browse/VALIDATOR-316
Project: Commons Validator
Issue Type: Bug
Components: Framework
Affects Versions: 1.3.1 Release, 1.4.0 Release
Reporter: Michael J Chane
Priority: Minor
When the strict mode is on, the GenericTypeValidator.formatDate(String value,
String datePattern, boolean strict) method tests if the value.length() equals
the datePattern.length().
This comparison does not take into consideration that the datePattern may
contain single quotes to avoid some plain text being interpreted as pattern
letters. For example, as described in SimpleDateFormat, "Wed, Jul 4, '01" is
suitable for pattern "EEE, MMM d, ''yy" while the two strings have different
length.
On the other hand, the length comparison doesn't work in some Locales. In
Locale.CHINESE, the datePattern part "MMM" matches "三月" (two Chinese
characters, literally "the third month"), while in Locale.JAPANESE, the
datePattern part "EEE" matches "日" (single Japanese Kanji/Chinese character,
literally "Sun" or "Day").
Even though the examples above are rarely used in production, the length
comparison is still not acceptable. Setting lenient to true, or comparison
between the original text and the formatted text from the result Date using the
same pattern is better.
--
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