docs: public synchronized void moveCursor(Cursor cursor)
    {
      if (tc.isEntryEnabled())
        SibTr.entry(tc, "moveCursor", new Object[] { cursor });
      
      checkEntryParent();
        
      synchronized(parentList)
      {
        //make sure that the cursor is pointing to an entry in the same list
        if(cursor != null && cursor.parentList == parentList)
        {
          //if we are already pointing to the same entry, we may not have to
          //do anything
          if(cursor.current != current)
          {
            if(cursor.atTop)
            {
              //if the new cursor is at the top, move this one to the top
              moveToTop();
            }
            else if(cursor.atBottom)
            {
              //if the new cursor is at the bottom, move this one to the bottom
              moveToBottom();
            }
            else
            {
              //otherwise just move this cursor to point to the same entry as the
              //one pointed to by the given cursor
              moveCursor(cursor.current);
            }
          }
          else //it is possible that the current entries are both null if they are both
          {    //at the top or bottom on the list
            if(cursor.current == null)
            {
              if(cursor.atTop && atBottom)
              {
                //if the given cursor is at the top but we are at the bottom, move to the top
                moveToTop();
              }
              else if(cursor.atBottom && atTop)
              {
                //if the given cursor is at the bottom but we are at the top, move to the bottom
                moveToBottom();
              }
            }
          }
        }
        else //if the new entry is not in this list, throw a runtime exception
        {
          SIErrorException e = new SIErrorException(
            nls.getFormattedMessage(
              "INTERNAL_MESSAGING_ERROR_CWSIP0002",
              new Object[] {
                "com.ibm.ws.sib.processor.utils.linkedlist.Cursor",
                "1:541:1.15" },
             null));
    
          FFDCFilter.processException(
            e,
            "com.ibm.ws.sib.processor.utils.linkedlist.Cursor.moveCursor",
            "1:547:1.15",
            this);
    
          SibTr.exception(tc, e);      
    
          if (tc.isEntryEnabled())
            SibTr.exit(tc, "moveCursor", e);
    
          throw e;
        }
      }        
    
      if (tc.isEntryEnabled())
        SibTr.exit(tc, "moveCursor");
    }