docs: private void removeConsumerFromRegisteredMonitorMap(
      MonitoredConsumer mc,
      ArrayList monitorList,
      Map registeredMonitors)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.entry(
            tc,
            "removeConsumerFromRegisteredMonitorMap",
            new Object[] { registeredMonitors,
                           mc,
                           monitorList });
      // Finally, remove this consumer from the appropriate places in the registered
      // consumer monitors tables
      Iterator i = monitorList.iterator();
      while (i.hasNext())
      {
        String tExpr = (String)i.next();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          SibTr.debug(tc, "Remove registration entry for consumer at: " + tExpr);
        // Get the next monitor
        RegisteredCallbacks rMonitor = (RegisteredCallbacks)registeredMonitors.get(tExpr);
  
        // Retrieve the current list of consumers
        ArrayList matchingConsumerList = rMonitor.getMatchingConsumers();
  
        boolean removed = matchingConsumerList.remove(mc);
        if(!removed)
        {
          // Couldn't find the consumer. This means we have an internal
          // inconsistency in our tables, so throw an SIErrorException
  
          // Build the message for the Exception
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(tc, "removeConsumerFromRegisteredMonitorMap", mc + ":" + tExpr);
  
          SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0005",
            new Object[] {
              "com.ibm.ws.sib.processor.matching.ConsumerMonitorRegistrar",
              "1:1067:1.10",
              mc + ":" + tExpr });
          throw new SIErrorException(
            nls.getFormattedMessage(
              "INTERNAL_MESSAGING_ERROR_CWSIP0005",
              new Object[] {
                "com.ibm.ws.sib.processor.matching.ConsumerMonitorRegistrar",
                "1:1074:1.10",
                mc + ":" + tExpr },
              null));
        }
        // Handle the driving of the callbacks
        if(matchingConsumerList.isEmpty())
        {
          // This is a transition from 1 -> 0 consumer for this monitor.
          // Therefore we need to drive a callback
  
          driveRegisteredCallbacks(rMonitor, true);
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "removeConsumerFromRegisteredMonitorMap");
  
    }