Index: modules/security/test/common/unit/java/security/cert/X509CertSelectorTest.java =================================================================== --- modules/security/test/common/unit/java/security/cert/X509CertSelectorTest.java (revision 382285) +++ modules/security/test/common/unit/java/security/cert/X509CertSelectorTest.java (working copy) @@ -22,8 +22,6 @@ package java.security.cert; import java.io.IOException; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.math.BigInteger; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; @@ -2941,6 +2939,25 @@ } /** + * @tests java.security.cert.X509CertSelector#match(java.security.cert.Certificate) + */ + public void test_matchLjava_security_cert_Certificate() { + + // Regression for HARMONY-186 + TestCert cert = new TestCert(); + cert.setKeyUsage(new boolean[] { true, false, true, false, false, + false, false, false, false }); + + X509CertSelector certSelector = new X509CertSelector(); + + certSelector.setKeyUsage(new boolean[] { true, false, true }); + assertTrue("Assert 1: ", certSelector.match(cert)); + + certSelector.setKeyUsage(new boolean[] { true, true, true }); + assertFalse("Assert 2: ", certSelector.match(cert)); + } + + /** * clone() method testing. */ public void testClone() throws IOException { Index: modules/security/src/common/javasrc/java/security/cert/X509CertSelector.java =================================================================== --- modules/security/src/common/javasrc/java/security/cert/X509CertSelector.java (revision 383809) +++ modules/security/src/common/javasrc/java/security/cert/X509CertSelector.java (working copy) @@ -909,7 +909,9 @@ boolean[] ku = cert.getKeyUsage(); if (ku != null) { int i = 0; - for (; i