docs: public SIBusMessage peek() throws SISessionUnavailableException, SIIncorrectCallException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "peek", this);
  
      checkValidState("peek");
  
      localConsumerPoint.checkNotClosed();
  
      JsMessage jsMsg = null;
  
      synchronized(this)
      {
        if(!endReached)
        {
          // If currentMsg is null it means we start from the begining
          if(currentMsg == null)
          {
            if(firstMsg != null)
            {
              jsMsg = setPropertiesInMessage(firstMsg);
            }
          }
          else
          {
            if(currentMsg.next != null)
            {
              jsMsg = setPropertiesInMessage(currentMsg.next);
            }
          }
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "peek", jsMsg);
      return jsMsg;
    }