code: public void setIssuers(Collection<X500Principal> issuers) {
          if ((issuers == null) || issuers.isEmpty()) {
              issuerNames = null;
              issuerX500Principals = null;
          } else {
              // clone
              issuerX500Principals = new HashSet<X500Principal>(issuers);
              issuerNames = new HashSet<Object>();
              for (X500Principal p : issuerX500Principals) {
                  issuerNames.add(p.getEncoded());
              }
          }
      }
docs: Sets the issuerNames criterion. The issuer distinguished name in the
  {@code X509CRL} must match at least one of the specified
  distinguished names. If {@code null}, any issuer distinguished name
  will do.
  <p>
  This method allows the caller to specify, with a single method call,
  the complete set of issuer names which {@code X509CRLs} may contain.
  The specified value replaces the previous value for the issuerNames
  criterion.
  <p>
  The {@code names} parameter (if not {@code null}) is a
  {@code Collection} of {@code X500Principal}s.
  <p>
  Note that the {@code names} parameter can contain duplicate
  distinguished names, but they may be removed from the
  {@code Collection} of names returned by the
  {@link #getIssuers getIssuers} method.
  <p>
  Note that a copy is performed on the {@code Collection} to
  protect against subsequent modifications.
  
  @param issuers a {@code Collection} of X500Principals
  (or {@code null})
  @see #getIssuers
  @since 1.5