docs: private void fakeResponse(final HttpMethod method)
          throws IOException, HttpException {
          // What is to follow is an ugly hack.
          // I REALLY hate having to resort to such
          // an appalling trick
          // The only feasible solution is to split monolithic
          // HttpMethod into HttpRequest/HttpResponse pair.
          // That would allow to execute CONNECT method 
          // behind the scene and return CONNECT HttpResponse 
          // object in response to the original request that 
          // contains the correct status line, headers & 
          // response body.
          LOG.debug("CONNECT failed, fake the response for the original method");
          // Pass the status, headers and response stream to the wrapped
          // method.
          // To ensure that the connection is not released more than once
          // this method is still responsible for releasing the connection. 
          // This will happen when the response body is consumed, or when
          // the wrapped method closes the response connection in 
          // releaseConnection().
          if (method instanceof HttpMethodBase) {
              ((HttpMethodBase) method).fakeResponse(
                  this.connectMethod.getStatusLine(),
                  this.connectMethod.getResponseHeaderGroup(),
                  conn,
                  this.connectMethod.getResponseBodyAsStream()
              );
              method.getProxyAuthState().setAuthScheme(
                  this.connectMethod.getProxyAuthState().getAuthScheme());
              this.connectMethod = null;
          } else {
              releaseConnection = true;
              LOG.warn(
                  "Unable to fake response on method as it is not derived from HttpMethodBase.");
          }
      }