if (value != null && (mode == CacheMode.WRITE_ONLY || mode == CacheMode.ALL))
cache.put(key, ks.wrap(value, target, m, args));
else if (mode == CacheMode.REMOVE)
cache.remove(key);
else if (mode == CacheMode.EVICT)
cache.evict();
else if (mode == CacheMode.CLEAR)
cache.clear();
return value;
} catch (Throwable e) {