docs: public void closeAllConsumersForFlush()
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this,tc, "closeAllConsumersForFlush");
  
      boolean notifyConsumers = true;
      Object[] clonedConsumerPoints = null;
  
      synchronized (consumerPoints)
      {
  
        _forceFlushInProgress = true;
  
        if (consumerPoints.size() == 0)
        {
          notifyConsumers = false;
        }
        else
        {
          // we clone the list before notifying the exception, since the CP's may call methods on the CD in the
          // context of the notification, and don't want a deadlock
          clonedConsumerPoints = consumerPoints.toArray();
        }
  
        // since we have set forceFlushInProgress to true, we will not allow any more consumers till we have
        // finished
      }
  
      // if there were consumers, we tell them to close.
      if (notifyConsumers)
      {
        // unreachable. throw exception to ConsumerPoints
        SIResourceException e = new SIResourceException(
          nls.getFormattedMessage("ANYCAST_STREAM_UNAVAILABLE_CWSIP0471",
                                new Object[]{getDestName(), SIMPUtils.getMENameFromUuid(getLocalisationUuid().toString())},
                                null));
  
        for (int i=0; i<clonedConsumerPoints.length; i++)
        {
          DispatchableKey ck = (DispatchableKey) clonedConsumerPoints[i];
          ck.getConsumerPoint().implicitClose(null,e,_aih.getLocalisationUuid());
        }
      }
      else
      {
        try
        {
          // all consumers are gone so finish processing the cardinality change
          // NOTE: this will flush the stream.
          forceFlushConsumersDetached();
        }
        catch (SIResourceException e)
        {
          // log and throw exception
          FFDCFilter.processException(e,
            "com.ibm.ws.sib.processor.impl.RemoteConsumerDispatcher.closeAllConsumersForFlush","1:1630:1.97.2.21",this);
          SibTr.exception(tc, e);
  
          SIErrorException e2 = new SIErrorException(e);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "closeAllConsumersForFlush", e2);
          throw e2;
        }
      }
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "closeAllConsumersForFlush");
    }