private boolean optimisticFind ( SearchComparator comp , Object searchKey , SearchNode point ) { point . reset ( ) ; int v1 = _vno ; if ( root ( ) != null ) { if ( ( v1 & 1 ) != 0 ) return pessimisticNeeded ; synchronized ( point ) { } try { internalFind ( comp , searchKey , point ) ; } catch ( NullPointerException npe ) { //No FFDC Code Needed. _nullPointerExceptions ++ ; return checkForPossibleIndexChange ( v1 , _vno , npe , "optimisticInsert" ) ; } catch ( OptimisticDepthException ode ) { //No FFDC Code Needed. _optimisticDepthExceptions ++ ; return checkForPossibleIndexChange ( v1 , _vno , ode , "optimisticInsert" ) ; } if ( v1 != _vno ) return pessimisticNeeded ; } _optimisticFinds ++ ; return optimisticWorked ; }
Optimistic find in a GBS Tree