code: private void cleanUp() {
        try {
          if (!closed.compareAndSet(false, true)) {
            return;
          }
  
          closeQuietly(pumper);
          shutdownExecutorService(executorService);
        } finally {
          closeQuietly(toClose);
        }
      }
docs: Performs the cleanup tasks:
  1. closes the InputStream pumper
  2. closes all internally managed closeables (piped streams).
  
  The order of these tasks can't change or its likely that the pumper will through errors,
  if the stream it uses closes before the pumper it self.