question: protected RpfCacheHandler sweepCaches ( ) { if ( caches . size ( ) < maxUsers ) { return null ; } long diff = Long . MAX_VALUE ; Enumeration keys = timestamps . keys ( ) ; Object getRid = null ; while ( keys . hasMoreElements ( ) ) { Object tester = keys . nextElement ( ) ; Long time = ( Long ) timestamps . get ( tester ) ; if ( time . longValue ( ) < diff ) { getRid = tester ; diff = time . longValue ( ) ; } } boolean DEBUG = false ; if ( getRid != null ) { if ( Debug . debugging ( "crfp" ) ) { DEBUG = true ; } if ( DEBUG ) Debug . output ( "Removing cache for new user, was " + caches . size ( ) ) ; caches . remove ( getRid ) ; timestamps . remove ( getRid ) ; viewAttributeLists . remove ( getRid ) ; if ( DEBUG ) Debug . output ( "  now " + caches . size ( ) ) ; } if ( caches . size ( ) >= maxUsers ) { return sweepCaches ( ) ; } else { return ( RpfCacheHandler ) getRid ; } }
target:  Create a spot in the cache for a new entry. If something is removed from the cache, it is returned here.