code: public void drain() throws InterruptedException, IOException {
          ClientImpl currentClient = this.getClient();
          if (currentClient == null) {
              throw new IOException("Client is unavailable for drain().");
          }
          currentClient.drain();
      }
docs: Block the current thread until all queued stored procedure invocations have received
  responses or there are no more connections to the cluster
  
  @throws InterruptedException
  @throws IOException
  @see Client#drain()