docs: public SIBusMessage nextLocked()
    throws SISessionUnavailableException, SISessionDroppedException,
           SIResourceException, SIConnectionLostException, 
           SIErrorException, SIIncorrectCallException
    {
      if (TraceComponent.isAnyTracingEnabled() && CoreSPILockedMessageEnumeration.tc.isEntryEnabled())
        SibTr.entry(CoreSPILockedMessageEnumeration.tc, "nextLocked", this);
  
      checkValidState("nextLocked");
            
      _localConsumerPoint.checkNotClosed();  
  
      if (_seenSingleMessage || _singleMessage == null)
      {
        _messageAvailable = false;
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.exit(tc, "nextLocked", null);
        return null;
      }
      _seenSingleMessage = true;
      
      JsMessage msg = null;
      
      // Because this message is not in the message store there is no need to copy it
      // before giving it to a caller unless this is pubsub, in which case there may be
      // other subscriptions referencing the same message, in which case we must copy the
      // message (unless the caller indicates that they won't be altering it)
      if(_isPubsub &&
         ((ConnectionImpl)(_localConsumerPoint.getConsumerSession().getConnection())).getMessageCopiedWhenReceived())
      {
        try
        {
          msg = (_singleMessage.getMessage()).getReceived();
        }
        catch (MessageCopyFailedException e)
        {
          FFDCFilter.processException(
            e,
            "com.ibm.ws.sib.processor.impl.SingleLockedMessageEnumerationImpl.nextLocked",
            "1:172:1.44",
            this);
              
          SibTr.exception(tc, e);
          SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0002",
            new Object[] {
              "com.ibm.ws.sib.processor.impl.SingleLockedMessageEnumerationImpl",
              "1:179:1.44",
              e });
            
          _seenSingleMessage = false;
          _messageAvailable = false;
    
          if (TraceComponent.isAnyTracingEnabled() && CoreSPILockedMessageEnumeration.tc.isEntryEnabled())
            SibTr.exit(CoreSPILockedMessageEnumeration.tc, "nextLocked", e);
    
          throw new SIResourceException(
            nls.getFormattedMessage(
              "INTERNAL_MESSAGING_ERROR_CWSIP0002",
              new Object[] {
                "com.ibm.ws.sib.processor.impl.SingleLockedMessageEnumerationImpl",
                "1:193:1.44",
                e },
              null),
            e);
        }
      }
      else
        msg = _singleMessage.getMessage();
            
      //indicate that there is a messageAvailable
      _messageAvailable = true;
  
      if (TraceComponent.isAnyTracingEnabled() && UserTrace.tc_mt.isDebugEnabled())                                   
        UserTrace.trace_Receive(null, 
                                msg, 
                                _localConsumerPoint.getConsumerSession().getDestinationAddress(), 
                                _localConsumerPoint.getConsumerSession().getIdInternal());
      
      if (TraceComponent.isAnyTracingEnabled() && CoreSPILockedMessageEnumeration.tc.isEntryEnabled())
            SibTr.exit(CoreSPILockedMessageEnumeration.tc, "nextLocked", msg);
      
      return msg;
    }