question: private boolean checkSameBounds ( TypeVar tv1 , TypeVar tv2 ) { TypePair p = new TypePair ( tv1 , tv2 , true ) ; if ( cache . add ( p ) ) { try { return visit ( tv1 . getUpperBound ( ) , tv2 . getUpperBound ( ) ) ; } finally { cache . remove ( p ) ; } } else { return false ; } }
target:  Since type-variable bounds can be recursive, we need to protect against infinite loops - where the same bounds are checked over and over recursively.