From ab8e966f715d3438597b6be314b8ccd7d7bfd38d Mon Sep 17 00:00:00 2001 From: "Luis C.M" <42545778+c0508383@users.noreply.github.com> Date: Tue, 30 May 2023 01:46:29 -0500 Subject: [PATCH] NpcAPI: -Made item cache key removal a synchronized code block --- .../java/noppes/npcs/scripted/NpcAPI.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/noppes/npcs/scripted/NpcAPI.java b/src/main/java/noppes/npcs/scripted/NpcAPI.java index aca3e27fb..96492e409 100644 --- a/src/main/java/noppes/npcs/scripted/NpcAPI.java +++ b/src/main/java/noppes/npcs/scripted/NpcAPI.java @@ -373,17 +373,18 @@ public class NpcAPI extends AbstractNpcAPI { long time = System.currentTimeMillis(); scriptStack.lastAccessed = time; - List keysToRemove = new ArrayList<>(); - for (Map.Entry entry : scriptItemCache.entrySet()) { - if (time - entry.getValue().lastAccessed > 20000) { - keysToRemove.add(entry.getKey()); + synchronized (scriptItemCache) { + List keysToRemove = new ArrayList<>(); + for (Map.Entry entry : scriptItemCache.entrySet()) { + if (time - entry.getValue().lastAccessed > 20000) { + keysToRemove.add(entry.getKey()); + } } + for (ItemStack key : keysToRemove) { + scriptItemCache.remove(key); + } + scriptItemCache.put(itemstack, scriptStack); } - for (ItemStack key : keysToRemove) { - scriptItemCache.remove(key); - } - - scriptItemCache.put(itemstack,scriptStack); return scriptStack; }