[
https://issues.apache.org/jira/browse/VALIDATOR-336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14205124#comment-14205124
]
Peter Lindberg commented on VALIDATOR-336:
------------------------------------------
Benedikt:
Whoops! I did not realize that ISBN is an exception to the rule that the
checkdigit can not be a letter. My fault for not running all the tests.
I applied the same type of fix in CUSIPCheckDigit instead of ModulusCheckDigit.
I'm attaching a patch for it and also a modified version of the test that Josh
Meyer originally posted. Thanks.
> CUSIPCheckDigit Thinks Invalid CUSIP is Valid
> ---------------------------------------------
>
> Key: VALIDATOR-336
> URL: https://issues.apache.org/jira/browse/VALIDATOR-336
> Project: Commons Validator
> Issue Type: Bug
> Reporter: Josh Meyer
> Attachments: CusipValidatorTest.java
>
>
> When testing if a specific CUSIP is valid using
> org.apache.commons.validator.routines.checkdigit.CUSIPCheckDigit.CUSIP_CHECK_DIGIT.isValid,
> a call to this returns true when it should return false. A specific example
> is with the following invalid CUSIP: DUS0421CW.
> What seems to be happening is when toInt is called on W it turns it to an int
> value and then sends it to weightedValue. This is fine for the first 8
> characters of a CUSIP, but not the check digit. The expected result should be
> to return false because the check digit is a letter (on a CUSIP a check digit
> must be 0-9).
> With the current implementation, I believe each CUSIP can have up to 4 valid
> check digits.
> A test is attached.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)