code: static int mergeExplicitPolicy(int explicitPolicy, X509CertImpl currCert,
          boolean finalCert) throws CertPathValidatorException
      {
          if ((explicitPolicy > 0) && !X509CertImpl.isSelfIssued(currCert)) {
              explicitPolicy--;
          }
  
          try {
              PolicyConstraintsExtension polConstExt
                  = currCert.getPolicyConstraintsExtension();
              if (polConstExt == null)
                  return explicitPolicy;
              int require =
                  polConstExt.get(PolicyConstraintsExtension.REQUIRE).intValue();
              if (debug != null) {
                  debug.println("PolicyChecker.mergeExplicitPolicy() "
                     + "require Index from cert = " + require);
              }
              if (!finalCert) {
                  if (require != -1) {
                      if ((explicitPolicy == -1) || (require < explicitPolicy)) {
                          explicitPolicy = require;
                      }
                  }
              } else {
                  if (require == 0)
                      explicitPolicy = require;
              }
          } catch (IOException e) {
              if (debug != null) {
                  debug.println("PolicyChecker.mergeExplicitPolicy "
                                + "unexpected exception");
                  e.printStackTrace();
              }
              throw new CertPathValidatorException(e);
          }
  
          return explicitPolicy;
      }
docs: Merges the specified explicitPolicy value with the
  requireExplicitPolicy field of the <code>PolicyConstraints</code>
  extension obtained from the certificate. An explicitPolicy
  value of -1 implies no constraint.
  
  @param explicitPolicy an integer which indicates if a non-null
  valid policy tree is required
  @param currCert the Certificate to be processed
  @param finalCert a boolean indicating whether currCert is
  the final cert in the cert path
  @return returns the new explicitPolicy value
  @exception CertPathValidatorException Exception thrown if an error
  occurs