docs: public void stop() {
      if (acceptChannel == null || !acceptChannel.isOpen()) {
        LOG.info("Fail to stop server; not yet open.");
        return;
      }
      // Clear all connected socket and related stuff
      for (Map.Entry<SocketChannel, SocketChannelHelper> connections : activeConnections.entrySet()) {
        SocketChannel channel = connections.getKey();
        SocketAddress channelAddress = channel.socket().getRemoteSocketAddress();
        LOG.info("Closing connected channel from client: " + channelAddress);
        LOG.info("Removing all interest on channel: " + channelAddress);
        nioLooper.removeAllInterest(channel);
  
        // Dispatch the child instance
        onClose(channel);
        // Clear the SocketChannelHelper
        connections.getValue().clear();
      }
  
      // Clear state inside the HeronServer
      activeConnections.clear();
      requestMap.clear();
      messageMap.clear();
      try {
        acceptChannel.close();
      } catch (IOException e) {
        LOG.log(Level.SEVERE, "Failed to close server", e);
      }
    }