JDK-8031025 : SQE test CertPath/CertPathBuilderTest/* failed with java.lang.IndexOutOfBoundsException
  • Type: Bug
  • Component: security-libs
  • Sub-Component: java.security
  • Affected Version: 8,9
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2013-12-25
  • Updated: 2016-06-13
  • Resolved: 2014-02-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u20Fixed 9 b04Fixed
Description
This test failed since http://hg.openjdk.java.net/jdk8/tl/jdk/rev/d6c4ae56c079 submitted. 
Error log are following: 

[2013-12-19T06:34:55.17] java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 
[2013-12-19T06:34:55.17] at java.util.ArrayList.rangeCheck(ArrayList.java:638) 
[2013-12-19T06:34:55.17] at java.util.ArrayList.get(ArrayList.java:414) 
[2013-12-19T06:34:55.17] at java.util.Collections$UnmodifiableList.get(Collections.java:1369) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.RevocationChecker.buildToNewKey(RevocationChecker.java:1068) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.RevocationChecker.verifyWithSeparateSigningKey(RevocationChecker.java:904) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:571) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:459) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:361) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:337) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.ReverseBuilder.verifyCert(ReverseBuilder.java:443) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.SunCertPathBuilder.depthFirstSearchReverse(SunCertPathBuilder.java:687) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.SunCertPathBuilder.buildReverse(SunCertPathBuilder.java:261) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.SunCertPathBuilder.buildCertPath(SunCertPathBuilder.java:167) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:136) 
[2013-12-19T06:34:55.17] at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:131) 
[2013-12-19T06:34:55.17] at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) 
[2013-12-19T06:34:55.17] at BuildCertPath.doBuild(BuildCertPath.java:395) 
[2013-12-19T06:34:55.17] at BuildCertPath.main(BuildCertPath.java:137) 
[2013-12-19T06:34:55.49] FAIL : 


necessary resource please check attachtments. 
Comments
Evaluation: RevocationChecker.buildToNewKey() needed a check for an empty cert path list. This code would be run with an empty cert path list if the key that had signed the CRL was different from the key used to sign the EE cert. For example: If the reverse cert path build had backtracked (causing a need to run buildToNewKey()), and if it had backtracked all the way back to the trust anchor (creating an empty cert path list), then the offending code would be run with an empty cert path list.
13-02-2014

It affects only reverse building and reverse building is not a supported public API(confirmed by Raghu) ILW = MLM
20-01-2014

It happens only for certpath in reverse.
18-01-2014

Does this only fail when building certpaths in reverse? If so, then the likelihood is much less severe. Reverse building is not a supported option or documented in our APIs/guides. You need to use an internal API to configure it. I would categorize this as a P4 if it only affects reverse building.
17-01-2014

IWL=MHM set to p2
17-01-2014

Affect cases: RULE CertPath/CertPathBuilderTest/BCF/test5 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/KeyUsagePolicy/test1 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/KeyUsagePolicy/test3 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/KeyUsagePolicy/test4 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/KeyUsagePolicy/test5 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/KeyUsagePolicy/test6 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test112 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test47 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test48 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test74 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test75 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test76 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test77 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test79 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test80 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test81 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test82 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test83 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test84 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test85 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test86 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test87 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test89 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test90 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test91 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test92 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/Misc/test93 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/NameConstraints/test2 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ... RULE CertPath/CertPathBuilderTest/PolicyProcessing/test1 Exception java.lang.IndexOutOfBoundsException: Index: ..., Size: ...
25-12-2013