code: @Override
      public List values(CacheKeyFilter filter) throws IOException {
  	if (CacheUtil.allowAll(filter)) return values();
  
  	List<String> keys = keys();
  
  	List<Object> list = new ArrayList<Object>();
  	Iterator<String> it = keys.iterator();
  	String key;
  	while (it.hasNext()) {
  	    key = it.next();
  	    if (filter.accept(key)) {
  		CacheEntry ce = getQuiet(key, null);
  		if (ce != null) // possible that the entry is gone since keys(); call above
  		    list.add(ce.getValue());
  	    }
  	}
  	return list;
      }
docs: a generic type at all here, just to be sure