diff --git a/src/main/java/br/ufrgs/inf/prosoft/cache/Caffeine.java b/src/main/java/br/ufrgs/inf/prosoft/cache/Caffeine.java
index 279ae7b..c4584fd 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/cache/Caffeine.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/cache/Caffeine.java
@@ -28,6 +28,7 @@ public class Caffeine<K, V> implements Cache<K, V>, AutoCloseable {
private static final boolean CACHE_EVALUATE_PERFORMANCE = System.getenv("CACHE_EVENTS") == null || !System.getenv("CACHE_EVENTS").equals("false");
private static final boolean CACHE_REGISTER_SIZE = System.getenv("CACHE_REGISTER_SIZE") != null && System.getenv("CACHE_REGISTER_SIZE").equals("true");
+ private static final boolean CACHE_REFRESH_TTL = System.getenv("CACHE_REFRESH_TTL") != null && System.getenv("CACHE_REFRESH_TTL").equals("true");
private final com.github.benmanes.caffeine.cache.Cache<Optional<K>, Optional<V>> cache;
private final ConcurrentHashMap<Optional<K>, Long> keyHasTTL;
private final CachePerformance cachePerformance;
@@ -89,6 +90,9 @@ public class Caffeine<K, V> implements Cache<K, V>, AutoCloseable {
@Override
public long expireAfterRead(Optional<K> key, Optional<V> value, long currentTime, long currentDuration) {
+ if (CACHE_REFRESH_TTL) {
+ return expireAfterCreate(key, value, currentTime);
+ }
return currentDuration;
}
});