Fix isStale condition

This commit is contained in:
Reinhard Pointner 2016-03-10 07:22:47 +00:00
parent 8bb15132d2
commit c6cd09b50d
2 changed files with 3 additions and 8 deletions

View File

@ -63,7 +63,7 @@ public class Cache {
Element element = null; Element element = null;
try { try {
element = cache.get(key); element = cache.get(key);
if (!condition.test(element)) { if (element != null && !condition.test(element)) {
return getElementValue(element); return getElementValue(element);
} }
} catch (Exception e) { } catch (Exception e) {
@ -77,7 +77,7 @@ public class Cache {
} }
public Object computeIfAbsent(Object key, Compute<?> compute) throws Exception { public Object computeIfAbsent(Object key, Compute<?> compute) throws Exception {
return computeIf(key, isAbsent(), compute); return computeIf(key, it -> it == null, compute);
} }
public void put(Object key, Object value) { public void put(Object key, Object value) {
@ -112,12 +112,8 @@ public class Cache {
} }
} }
public static Predicate<Element> isAbsent() {
return (element) -> element == null;
}
public static Predicate<Element> isStale(Duration expirationTime) { public static Predicate<Element> isStale(Duration expirationTime) {
return (element) -> element == null || element.getObjectValue() == null || System.currentTimeMillis() - element.getLatestOfCreationAndUpdateTime() < expirationTime.toMillis(); return (element) -> System.currentTimeMillis() - element.getLatestOfCreationAndUpdateTime() > expirationTime.toMillis();
} }
@FunctionalInterface @FunctionalInterface

View File

@ -9,7 +9,6 @@ import java.io.File;
import java.util.Collection; import java.util.Collection;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Level;
import javax.swing.Icon; import javax.swing.Icon;