code: public void stop() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "CommsInboundChain Stop");
  
          //stopchain() first quiesce's(invokes chainQuiesced) depending on the chainQuiesceTimeOut
          //Once the chain is quiesced StopChainTask is initiated.Hence we block until the actual stopChain is invoked
          try {
              ChainData cd = _cfw.getChain(_chainName);
              if (cd != null) {
                  _cfw.stopChain(cd, _cfw.getDefaultChainQuiesceTimeout());
                  stopWait.waitForStop(_cfw.getDefaultChainQuiesceTimeout()); //BLOCK till stopChain actually completes from StopChainTask
                  _cfw.destroyChain(cd);
                  _cfw.removeChain(cd);
              }
          } catch (Exception e) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(tc, "Failed in successfully cleaning(i.e stopping/destorying/removing) chain: ", e);
          } finally {
              _isChainStarted = false;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "CommsServerServiceFacade JfapChainStop");
      }
docs: stop will get called only from de-activate.