docs: public void alarm(Object thandle)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "alarm", thandle);
  
      boolean doClose = false;
  
      // We're probably about to close this consumer, which needs us to remove it from the AOStream's
      // consciousness first (so that it doesn't allow it to be used while we're closing it - as that's 
      // done outside of the lock). To do this we need to take the AOStream's (parent's) lock first and
      // remove it from the parent's list prior to releasing the lock.
      synchronized(parent)
      {
        this.lock();
        try
        {
          if (idleHandler != null)
          { // so we are still idle
            if (!listOfRequests.isEmpty())
            { // we have an outstanding request. idleHandler should be null, and therefore != thandle
              // Since this should never occur, log this error
              SIErrorException e =
                new SIErrorException(
                  nls.getFormattedMessage(
                    "INTERNAL_MESSAGING_ERROR_CWSIP0001",
                    new Object[] {
                      "com.ibm.ws.sib.processor.impl.JSRemoteConsumerPoint",
                      "1:1121:1.43.2.26" },
                    null));
              FFDCFilter.processException(
                e,
                "com.ibm.ws.sib.processor.impl.JSRemoteConsumerPoint.alarm",
                "1:1126:1.43.2.26",
                this);
              SibTr.exception(tc, e);
              SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0001",
                new Object[] {
                  "com.ibm.ws.sib.processor.impl.JSRemoteConsumerPoint",
                  "1:1132:1.43.2.26" });
            }
            else
            {
              // Remove this consumer so that it is no longer handed out for new requests (they'll
              // have to create a new consumer to use)
              parent.removeConsumerKey(selectionCriteriasAsString, this);
              
              doClose = true;
            }
          }
        }
        finally
        {
          this.unlock();
        }
      } // synchronised(parent)
      
      if (doClose)
      {
        close(); //Never call close() from within synchronized (this)!!
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "alarm");
  
    }