@Override
  public void stop() throws IOException {
    stopDelayedExecutor();
    final NIOTransport localTransport = transport;
    transport = null;
    if (localTransport != null) {
      localTransport.shutdownNow();
    }

    if (workerExecutorService != null) {
      final ExecutorService localExecutorService = workerExecutorService;
      workerExecutorService = null;
      localExecutorService.shutdownNow();
    }
    rootFilterChain = null;
  }