docs: public SIBusMessage peek() 
    
    throws SISessionUnavailableException, SIResourceException, SIIncorrectCallException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "peek");
      
      checkValidState("peek");
      
      _localConsumerPoint.checkNotClosed();
  
      SIBusMessage nextMessage = null;
      
      if(!_seenSingleMessage)
      {
        // 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
          {
            nextMessage = (_singleMessage.getMessage()).getReceived();
          }
          catch (MessageCopyFailedException e)
          {
            FFDCFilter.processException(
              e,
              "com.ibm.ws.sib.processor.impl.SingleLockedMessageEnumerationImpl.peek",
              "1:456:1.44",
              this);
                
            SibTr.exception(tc, e);
            SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0002",
              new Object[] {
                "com.ibm.ws.sib.processor.impl.SingleLockedMessageEnumerationImpl",
                "1:463:1.44",
                e });
              
            _seenSingleMessage = false;
            _messageAvailable = false;
      
            if (TraceComponent.isAnyTracingEnabled() && CoreSPILockedMessageEnumeration.tc.isEntryEnabled())
              SibTr.exit(CoreSPILockedMessageEnumeration.tc, "peek", e);
      
            throw new SIResourceException(
              nls.getFormattedMessage(
                "INTERNAL_MESSAGING_ERROR_CWSIP0002",
                new Object[] {
                  "com.ibm.ws.sib.processor.impl.SingleLockedMessageEnumerationImpl",
                  "1:477:1.44",
                  e },
                null),
              e);
          }
        }
        else
          nextMessage = _singleMessage.getMessage();
      }
      
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "peek", nextMessage);
      return nextMessage;
    }