From 6baa472567a13c9ce2d7ef99e7d5722e99b1cdb5 Mon Sep 17 00:00:00 2001 From: Luck Date: Fri, 15 Jun 2018 19:07:24 +0100 Subject: [PATCH] Fix context cache invalidation --- .../me/lucko/luckperms/common/buffers/ExpiringCache.java | 4 ++++ .../me/lucko/luckperms/common/contexts/ContextManager.java | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/me/lucko/luckperms/common/buffers/ExpiringCache.java b/common/src/main/java/me/lucko/luckperms/common/buffers/ExpiringCache.java index c2b9bd0ac..751fe0e0d 100644 --- a/common/src/main/java/me/lucko/luckperms/common/buffers/ExpiringCache.java +++ b/common/src/main/java/me/lucko/luckperms/common/buffers/ExpiringCache.java @@ -76,5 +76,9 @@ public abstract class ExpiringCache implements Supplier { } return this.value; } + + public void invalidate() { + this.expirationNanos = 0; + } } diff --git a/common/src/main/java/me/lucko/luckperms/common/contexts/ContextManager.java b/common/src/main/java/me/lucko/luckperms/common/contexts/ContextManager.java index d0d3dc7ef..26f2b7655 100644 --- a/common/src/main/java/me/lucko/luckperms/common/contexts/ContextManager.java +++ b/common/src/main/java/me/lucko/luckperms/common/contexts/ContextManager.java @@ -233,7 +233,10 @@ public abstract class ContextManager { throw new NullPointerException("subject"); } - this.subjectCaches.invalidate(subject); + ContextsCache cache = this.subjectCaches.getIfPresent(subject); + if (cache != null) { + cache.invalidate(); + } } Contexts calculate(T subject) {