@Override public void onRemoveItem(K k, V v) { try { super.onRemoveItem(k, v); } finally { if (v != null) updateSize(v, false); } }
@Override public void onRemoveItem(K k, V v) { if (v != null) updateSize(v, false); super.onRemoveItem(k, v); }
public V remove(K k) { Holder<K, V> holder = map.remove(k); if (holder == null) return null; long latency = System.nanoTime(); try { onRemoveItem(holder, true); return holder.get(); } finally { latency = System.nanoTime() - latency; statistics.removeCount.incrementAndGet(); statistics.removeLatency.addAndGet(latency); updateSizeMetric(); } }
public V remove(K k) { Holder<K, V> holder = map.remove(k); if (holder == null) return null; long latency = System.nanoTime(); try { onRemoveItem(holder, true); return holder.get(); } finally { latency = System.nanoTime() - latency; statistics.removeCount.incrementAndGet(); statistics.removeLatency.addAndGet(latency); updateSizeMetric(); } }
protected void onRemoveItem(Holder<K, V> h, boolean putToOutdated) { if (putToOutdated) putToOutdated(h); h.setRemoved(); onRemoveItem(h.k, h.v); }
protected void onRemoveItem(Holder<K, V> h, boolean putToOutdated) { if (putToOutdated) putToOutdated(h); h.setRemoved(); onRemoveItem(h.k, h.v); }
@Override public void onRemoveItem(K k, V v) { try { super.onRemoveItem(k, v); } finally { if (size() > limit) removeOldest(); } }
@Override public void onRemoveItem(K k, V v) { try { super.onRemoveItem(k, v); } finally { if (size() > limit) removeOldest(); } }
public void put(final K key, final V value, long ttl) { long latency = System.nanoTime(); try { Holder<K, V> h = new Holder<K, V>(key, value, findTimingsHolder(ttl)); Holder<K, V> old = map.put(key, h); onAddItem(key, value); updateTimingCache(h); if (old != null) { long removeLatency = System.nanoTime(); try { onRemoveItem(old, false); } finally { removeLatency = System.nanoTime() - removeLatency; statistics.removeCount.incrementAndGet(); statistics.removeLatency.addAndGet(removeLatency); } } } finally { latency = System.nanoTime() - latency; statistics.putCount.incrementAndGet(); statistics.putLatency.addAndGet(latency); updateSizeMetric(); } }
if (map.remove(h.k, h)) { try { onRemoveItem(h, true); } catch (Exception e) { onErrorDuringRefresh(e);
if (map.remove(h.k, h)) { try { onRemoveItem(h, true); } catch (Exception e) { onErrorDuringRefresh(e);
public void put(final K key, final V value, long ttl) { long latency = System.nanoTime(); try { Holder<K, V> h = new Holder<K, V>(key, value, findTimingsHolder(ttl)); Holder<K, V> old = map.put(key, h); onAddItem(key, value); updateTimingCache(h); if (old != null) { long removeLatency = System.nanoTime(); try { onRemoveItem(old, false); } finally { removeLatency = System.nanoTime() - removeLatency; statistics.removeCount.incrementAndGet(); statistics.removeLatency.addAndGet(removeLatency); } } } finally { latency = System.nanoTime() - latency; statistics.putCount.incrementAndGet(); statistics.putLatency.addAndGet(latency); updateSizeMetric(); } }