JDK throws ArrayIndexOutOfBoundsException while parsing non RFC conforming CRL with revocation reason not in the range of accepted values. Checked with keytool and CertPathValidator.
with keytool:
CRL Entry Extensions: 1
[1]: , Error parsing this extension
Exception trace:
java.lang.ArrayIndexOutOfBoundsException: -1
at sun.security.x509.CRLReasonCodeExtension.toString(CRLReasonCodeExtension.java:184)
at java.lang.String.valueOf(String.java:2979)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at java.util.AbstractMap.toString(AbstractMap.java:536)
at java.lang.String.valueOf(String.java:2979)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at java.security.cert.CertificateRevokedException.getMessage(CertificateRevokedException.java:173)
at sun.security.provider.certpath.RevocationChecker.checkApprovedCRLs(RevocationChecker.java:655)
at sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:567)