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
* @param additionalCommands additional commands to allow the command executor to process
   * @param addressOfRemoteServer URL of remote end Selenium server
   */
  public HttpCommandExecutor(
    Map<String, CommandInfo> additionalCommands,
    URL addressOfRemoteServer)
  {
    this(Require.nonNull("Additional commands", additionalCommands),
         Require.nonNull("Server URL", addressOfRemoteServer),
         defaultClientFactory);
  }
  public HttpCommandExecutor(
    Map<String, CommandInfo> additionalCommands,
    URL addressOfRemoteServer,
    HttpClient.Factory httpClientFactory)
  {
    this(additionalCommands,
         ClientConfig.defaultConfig()
           .baseUrl(Require.nonNull("Server URL", addressOfRemoteServer)),
         httpClientFactory);
  }
  public HttpCommandExecutor(
    Map<String, CommandInfo> additionalCommands,
    ClientConfig config,
    HttpClient.Factory httpClientFactory)
  {
    remoteServer = Require.nonNull("HTTP client configuration", config).baseUrl();
    this.additionalCommands = Require.nonNull("Additional commands", additionalCommands);
    this.httpClientFactory = Require.nonNull("HTTP client factory", httpClientFactory);
    this.client = this.httpClientFactory.createClient(config);