417 private void getRootChains(Certificate[] certificates, List chains,
418 boolean check)
419 {
420 List chain = new ArrayList();
421
422 boolean revoked = false;
423
424 for (int i = 0; i < certificates.length - 1; i++)
425 {
426 X509Certificate certificate = (X509Certificate) certificates[i];
427
428 if (!revoked && isRevoked(certificate))
429 {
430 revoked = true;
431 }
432 if (!check || !revoked)
433 {
434 try
435 {
436 if (check)
437 {
438 certificate.checkValidity();
439 }
440
441 chain.add(certificate);
442 }
443 catch (CertificateException ex)
444 {
445 446 revoked = true;
447 }
448 }