code: @Override
      public final void setDefaultLocalAddresses(Iterable<? extends SocketAddress> localAddresses) {
          if (localAddresses == null) {
              throw new NullPointerException("localAddresses");
          }
  
          synchronized (bindLock) {
              if (!boundAddresses.isEmpty()) {
                  throw new IllegalStateException(
                          "localAddress can't be set while the acceptor is bound.");
              }
  
              Collection<SocketAddress> newLocalAddresses =
                      new ArrayList<>();
              for (SocketAddress a: localAddresses) {
                  checkAddressType(a);
                  newLocalAddresses.add(a);
              }
  
              if (newLocalAddresses.isEmpty()) {
                  throw new IllegalArgumentException("empty localAddresses");
              }
  
              this.defaultLocalAddresses.clear();
              this.defaultLocalAddresses.addAll(newLocalAddresses);
          }
      }
docs: {@inheritDoc}