question: private V doGet ( Object key ) { if ( key == null ) throw new NullPointerException ( ) ; Comparator < ? super K > cmp = comparator ; outer : for ( ; ; ) { for ( Node < K , V > b = findPredecessor ( key , cmp ) , n = b . next ; ; ) { Object v ; int c ; if ( n == null ) break outer ; Node < K , V > f = n . next ; if ( n != b . next ) break ; if ( ( v = n . value ) == null ) { n . helpDelete ( b , f ) ; break ; } if ( b . value == null || v == n ) break ; if ( ( c = cpr ( cmp , key , n . key ) ) == 0 ) { @ SuppressWarnings ( "unchecked" ) V vv = ( V ) v ; return vv ; } if ( c < 0 ) break outer ; b = n ; n = f ; } } return null ; }
target:  Gets value for key. Almost the same as findNode, but returns the found value (to avoid retries during re-reads)