Uploaded image for project: 'Commons Validator'
  1. Commons Validator
  2. VALIDATOR-336

CUSIPCheckDigit thinks invalid CUSIP is valid

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.4.0 Release
    • Fix Version/s: 1.4.1 Release
    • Component/s: Routines
    • Labels:
      None

      Description

      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.

        Attachments

        1. cusip.patch
          2 kB
          Sebb
        2. CUSIPCheckDigit.java.patch
          1 kB
          Peter Lindberg
        3. CusipValidatorTest_v2.java
          0.9 kB
          Peter Lindberg
        4. CusipValidatorTest.java
          2 kB
          Josh Meyer
        5. VALIDATOR-336.patch
          2 kB
          Benedikt Ritter

          Issue Links

            Activity

              People

              • Assignee:
                britter Benedikt Ritter
                Reporter:
                jjmeyer0 Josh Meyer
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: