docs: public void drain() throws InterruptedException, IOException {
          ClientImpl currentClient = this.getClient();
          if (currentClient == null) {
              throw new IOException("Client is unavailable for drain().");
          }
          currentClient.drain();
      }