Because it is a static field  `HttpClient.Factory.createDefault();` in called on instantiating the HttpCommandExecutor.
If you are using on of the Constructors with `HttpClient.Factory httpClientFactory)` as parameter it is no neccesary to have the `HttpClient.Factory.createDefault();` And you will stock on exceptions inside this `HttpClient.Factory.createDefault();`

https://github.com/SeleniumHQ/selenium/blob/26c65c7a5c1be4558311e91802ce35942cfacee8/java/client/src/org/openqa/selenium/remote/HttpCommandExecutor.java#L48
}
  /**
   * It may be useful to extend the commands understood by this {@code HttpCommandExecutor} at run
   * time, and this can be achieved via this method. Note, this is protected, and expected usage is
   * for subclasses only to call this.
   *
   * @param commandName The name of the command to use.
   * @param info CommandInfo for the command name provided
   */
  protected void defineCommand(String commandName, CommandInfo info) {
    Require.nonNull("Command name", commandName);
    Require.nonNull("Command info", info);
    commandCodec.defineCommand(commandName, info.getMethod(), info.getUrl());
  }
  @Override
  public void setLocalLogs(LocalLogs logs) {
    this.logs = logs;
  }
  private void log(String logType, LogEntry entry) {
    logs.addEntry(logType, entry);
  }
  public URL getAddressOfRemoteServer() {
    return remoteServer;
  }
  @Override
  public Response execute(Command command) throws IOException {
    if (command.getSessionId() == null) {
      if (QUIT.equals(command.getName())) {
        return new Response();
      }