public void shutdown() throws IOException {
    List<IOException> ioes = new ArrayList<>();
    // these fields could be null if the WALFactory is created only for being used in the
    // getInstance method.
    if (metaProvider != null) {
      try {
        metaProvider.shutdown();
      } catch (IOException e) {
        ioes.add(e);
      }
    }
    if (replicationProvider != null) {
      try {
        replicationProvider.shutdown();
      } catch (IOException e) {
        ioes.add(e);
      }
    }
    if (provider != null) {
      try {
        provider.shutdown();
      } catch (IOException e) {
        ioes.add(e);
      }
    }
    if (!ioes.isEmpty()) {
      IOException ioe = new IOException("Failed to shutdown WALFactory");
      for (IOException e : ioes) {
        ioe.addSuppressed(e);
      }
      throw ioe;
    }
  }
Tell the underlying WAL providers to shut down, but do not clean up underlying storage. If you
are not ending cleanly and will need to replay edits from this factory's wals, use this method
if you can as it will try to leave things as tidy as possible.
hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALFactory.java