test_class.file: base/src/test/java/com/barchart/feed/base/provider/TestTimeoutCache.java
test_class.identifier: TestTimeoutCache
test_case.body: @Test
  	public void testRemove() throws Exception {
  		
  		final TimeoutCache<InstrumentID> cache = new TimeoutCache<InstrumentID>(2);
  		
  		final List<InstrumentID> ids = new ArrayList<InstrumentID>();
  		
  		for(int i = 0; i <10000; i++) {
  			ids.add(new InstrumentID(i));
  		}
  		
  		Thread.sleep(10000);
  		
  		for(final InstrumentID id : ids) {
  			cache.put(id, new Runnable() {
  
  				@Override
  				public void run() {
  					
  				}
  				
  			});
  		}
  		
  		for(final InstrumentID id : ids) {
  			cache.remove(id);
  		}
  		
  		assertEquals(0, cache.size());
  		
  	}
test_case.class_method_signature: TestTimeoutCache.testRemove()
test_case.full_signature: @Test public void testRemove()
test_case.identifier: testRemove
test_case.invocations: add sleep put remove assertEquals size
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testRemove()
focal_class.declarator: log = LoggerFactory.getLogger(TimeoutCache.class)
focal_class.modifier: protected static final
focal_class.original_string: protected static final Logger log = LoggerFactory.getLogger(TimeoutCache.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: timers = new ConcurrentHashMap<T, Integer>()
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<T, Integer> timers = new ConcurrentHashMap<T, Integer>();
focal_class.type: ConcurrentMap<T, Integer>
focal_class.var_name: timers
focal_class.declarator: tasks = new ConcurrentHashMap<T, Runnable>()
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<T, Runnable> tasks = new ConcurrentHashMap<T, Runnable>();
focal_class.type: ConcurrentMap<T, Runnable>
focal_class.var_name: tasks
focal_class.declarator: timeout
focal_class.modifier: private final
focal_class.original_string: private final int timeout;
focal_class.type: int
focal_class.var_name: timeout
focal_class.file: base/src/main/java/com/barchart/feed/base/provider/TimeoutCache.java
focal_class.identifier: TimeoutCache
focal_class.class_method_signature: TimeoutCache.TimeoutCache(final int seconds)
focal_class.full_signature: public  TimeoutCache(final int seconds)
focal_class.identifier: TimeoutCache
focal_class.modifiers: public
focal_class.parameters: (final int seconds)
focal_class.signature:  TimeoutCache(final int seconds)
focal_class.class_method_signature: TimeoutCache.put(final T key, final Runnable task)
focal_class.full_signature: public void put(final T key, final Runnable task)
focal_class.identifier: put
focal_class.modifiers: public
focal_class.parameters: (final T key, final Runnable task)
focal_class.return: void
focal_class.signature: void put(final T key, final Runnable task)
focal_class.class_method_signature: TimeoutCache.remove(final T key)
focal_class.full_signature: public void remove(final T key)
focal_class.identifier: remove
focal_class.modifiers: public
focal_class.parameters: (final T key)
focal_class.return: void
focal_class.signature: void remove(final T key)
focal_class.class_method_signature: TimeoutCache.size()
focal_class.full_signature: public int size()
focal_class.identifier: size
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int size()
focal_method.body: public void remove(final T key) {
  		
  		timers.remove(key);
  		tasks.remove(key);
  		
  	}
focal_method.class_method_signature: TimeoutCache.remove(final T key)
focal_method.full_signature: public void remove(final T key)
focal_method.identifier: remove
focal_method.invocations: remove remove
focal_method.modifiers: public
focal_method.parameters: (final T key)
focal_method.return: void
focal_method.signature: void remove(final T key)