code: private void parseExtension(Extension ext) throws CRLException {
          try {
              Class<?> extClass = OIDMap.getClass(ext.getExtensionId());
              if (extClass == null) {   // Unsupported extension
                  if (ext.isCritical())
                      unsupportedCritExt = true;
                  if (map.put(ext.getExtensionId().toString(), ext) != null)
                      throw new CRLException("Duplicate extensions not allowed");
                  return;
              }
              Constructor<?> cons = extClass.getConstructor(PARAMS);
              Object[] passed = new Object[] {Boolean.valueOf(ext.isCritical()),
                                              ext.getExtensionValue()};
              CertAttrSet<?> crlExt = (CertAttrSet<?>)cons.newInstance(passed);
              if (map.put(crlExt.getName(), (Extension)crlExt) != null) {
                  throw new CRLException("Duplicate extensions not allowed");
              }
          } catch (InvocationTargetException invk) {
              throw new CRLException(invk.getTargetException().getMessage());
          } catch (Exception e) {
              throw new CRLException(e.toString());
          }
      }
docs: Parse the encoded extension