public synchronized void moveCursor ( Entry newEntry ) { if ( tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "moveCursor" , new Object [ ] { newEntry } ) ; checkEntryParent ( ) ; //if the entry is the same as the current one //then we don't need to bother doing anything if ( newEntry != current ) { //make sure we can find the new entry in this list if ( newEntry != null && newEntry . parentList == parentList ) { LinkedList list = parentList ; synchronized ( list ) { //remove the cursor from it's current postion forceRemove ( ) ; //insert this cursor before the first on for the new entry next = newEntry . firstCursor ; if ( next != null ) next . previous = this ; newEntry . firstCursor = this ; previous = null ; parentList = list ; current = newEntry ; } } 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:457:1.15" } , null ) ) ; FFDCFilter . processException ( e , "com.ibm.ws.sib.processor.utils.linkedlist.Cursor.moveCursor" , "1:463:1.15" , this ) ; SibTr . exception ( tc , e ) ; if ( tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "moveCursor" , e ) ; throw e ; } } if ( tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "moveCursor" ) ; }
Synchronized . Move this cursor to point at a different entry in the same list .