question: @ SuppressWarnings ( "unchecked" ) protected synchronized V removeInternal ( Object key , boolean countRemove ) { if ( key == null ) { if ( Debug . verboseOn ( ) ) Debug . logVerbose ( "In UtilCache tried to remove with null key, using NullObject" + this . name , module ) ; } Object nulledKey = fromKey ( key ) ; CacheLine < V > oldCacheLine ; V oldValue ; if ( fileTable != null ) { try { synchronized ( this ) { try { oldValue = fileTable . get ( nulledKey ) ; } catch ( IOException e ) { oldValue = null ; throw e ; } fileTable . remove ( nulledKey ) ; jdbmMgr . commit ( ) ; } } catch ( IOException e ) { oldValue = null ; Debug . logError ( e , module ) ; } oldCacheLine = memoryTable . remove ( nulledKey ) ; } else { oldCacheLine = memoryTable . remove ( nulledKey ) ; oldValue = oldCacheLine != null ? oldCacheLine . getValue ( ) : null ; } if ( oldCacheLine != null ) { cancel ( oldCacheLine ) ; } if ( oldValue != null ) { noteRemoval ( ( K ) key , oldValue ) ; if ( countRemove ) removeHitCount . incrementAndGet ( ) ; return oldValue ; } else { if ( countRemove ) removeMissCount . incrementAndGet ( ) ; return null ; } }
target:  This is used for internal remove calls because we only want to count external calls 