From c3b3a761b4583c866343efb5bc3a36ad05147e57 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 13 Jun 2017 20:29:15 -0400 Subject: [PATCH] runelite-client: cache negative item price queries Also don't return null to guava cache, it doesn't support it --- .../java/net/runelite/client/ItemManager.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/ItemManager.java index ad8640768a..9d12828fb2 100644 --- a/runelite-client/src/main/java/net/runelite/client/ItemManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ItemManager.java @@ -70,18 +70,24 @@ public class ItemManager { try { - return client.lookupItemPrice(key); + ItemPrice itemPrice = client.lookupItemPrice(key); + if (itemPrice == null) + { + return NONE; + } + return itemPrice; } catch (IOException ex) { logger.warn("unable to look up item!", ex); - return null; + return NONE; } } }; private final LoadingCache itemPrices; private static final ItemPrice EMPTY = new ItemPrice(); + private static final ItemPrice NONE = new ItemPrice(); public ItemManager(RuneLite runelite) { @@ -97,6 +103,11 @@ public class ItemManager ItemPrice itemPrice = itemPrices.getIfPresent(itemId); if (itemPrice != null && itemPrice != EMPTY) { + if (itemPrice == NONE) + { + return null; + } + return itemPrice; }