code: private void writeObject(ObjectOutputStream oos) throws IOException {
          // Write out the non-transient fields
          // (revocationDate, reason, authority)
          oos.defaultWriteObject();
  
          // Write out the size (number of mappings) of the extensions map
          oos.writeInt(extensions.size());
  
          // For each extension in the map, the following are emitted (in order):
          // the OID String (Object), the criticality flag (boolean), the length
          // of the encoded extension value byte array (int), and the encoded
          // extension value byte array. The extensions themselves are emitted
          // in no particular order.
          for (Map.Entry<String, Extension> entry : extensions.entrySet()) {
              Extension ext = entry.getValue();
              oos.writeObject(ext.getId());
              oos.writeBoolean(ext.isCritical());
              byte[] extVal = ext.getValue();
              oos.writeInt(extVal.length);
              oos.write(extVal);
          }
      }
docs: Serialize this {@code CertificateRevokedException} instance.
  
  @serialData the size of the extensions map (int), followed by all of
  the extensions in the map, in no particular order. For each extension,
  the following data is emitted: the OID String (Object), the criticality
  flag (boolean), the length of the encoded extension value byte array
  (int), and the encoded extension value bytes.