docs: protected void cleanOutBifurcatedMessages(BifurcatedConsumerSessionImpl owner, boolean bumpRedeliveryOnClose) throws SIResourceException, SISessionDroppedException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "cleanOutBifurcatedMessages", new Object[]{new Integer(hashCode()),this});
  
      int unlockedMessages = 0;
  
      synchronized(this)
      {
        if(firstMsg != null)
        {
          LMEMessage message = firstMsg;
          LMEMessage unlockMsg = null;
  
          while(message != null)
          {
            unlockMsg = message;
            message = message.next;
  
            // Only unlock messages that are owned by the bifurcated consumer.
            if(unlockMsg.owner == owner)
            {
  
              // Unlock the message from the message store
              if(unlockMsg.isStored)
              {
                try
                {
                  unlockMessage(unlockMsg.message, bumpRedeliveryOnClose);
                }
                catch (SIMPMessageNotLockedException e)
                {
                  // No FFDC code needed
                  SibTr.exception(tc, e);
                  // See defect 387591
                  // We should only get this exception if the message was deleted via
                  // the controllable objects i.e. the admin console. If we are here for
                  // another reason that we have a real error.
                }
              }
  
              // Remove the element from the liss
              removeMessage(unlockMsg);
  
              unlockedMessages++;
            }
  
          }
        }
      }
  
      if(unlockedMessages != 0)
        localConsumerPoint.removeActiveMessages(unlockedMessages);
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "cleanOutBifurcatedMessages", this);
  
    }