docs: public void prepareToConnect(Request request) {
      if (this.request != null) {
        if (sameConnection(this.request.url(), request.url()) && exchangeFinder.hasRouteToTry()) {
          return; // Already ready.
        }
        if (exchange != null) throw new IllegalStateException();
  
        if (exchangeFinder != null) {
          maybeReleaseConnection(null, true);
          exchangeFinder = null;
        }
      }
  
      this.request = request;
      this.exchangeFinder = new ExchangeFinder(this, connectionPool, createAddress(request.url()),
          call, eventListener);
    }