code: @Override
      public void chainStopped(ChainData chainData) {
          final ActiveConfiguration cfg = currentConfig;
  
          int oldState = chainState.getAndSet(ChainState.STOPPED.val);
          if (oldState > ChainState.QUIESCED.val) {
              quiesceChain();
          }
  
          // Wake up anything waiting for the chain to stop
          // (see the update method for one example)
          stopWait.notifyStopped();
  
          // Post an endpoint stopped event to anyone listening
          String topic = owner.getEventTopic() + HttpServiceConstants.ENDPOINT_STOPPED;
          postEvent(topic, cfg, null);
          cfg.clearActivePort();
      }
docs: ChainEventListener method.
  This method can not be synchronized (deadlock with update/stop).
  Rely on CFW synchronization of chain operations.