docs: public void resetCursor()
    throws SISessionUnavailableException, SISessionDroppedException,
           SIErrorException, SIIncorrectCallException
    {
      if (TraceComponent.isAnyTracingEnabled() && CoreSPILockedMessageEnumeration.tc.isEntryEnabled())
        SibTr.entry(CoreSPILockedMessageEnumeration.tc, "resetCursor",
          new Object[] {this, new Integer(hashCode())});
  
      checkValidState("resetCursor");
  
      localConsumerPoint.checkNotClosed();
  
      synchronized(this)
      {
        if(currentUnlockedMessage != null)
        {
          removeMessage(currentUnlockedMessage);
          currentUnlockedMessage = null;
        }
  
        // Move the cursor back to the callback entry point
        currentMsg = callbackEntryMsg;
        endReached = false;
        messageAvailable = false;
      }
  
      if (TraceComponent.isAnyTracingEnabled() && CoreSPILockedMessageEnumeration.tc.isEntryEnabled())
        SibTr.exit(CoreSPILockedMessageEnumeration.tc, "resetCursor", this);
    }