From ede2041a616e2a5ef518186aee78eeee468c74fb Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 13 May 2018 08:14:12 -0400 Subject: [PATCH] item controller: don't return duplicate items in bulk lookup --- .../net/runelite/http/service/item/ItemController.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/http-service/src/main/java/net/runelite/http/service/item/ItemController.java b/http-service/src/main/java/net/runelite/http/service/item/ItemController.java index f064cf22b1..d98f8ede54 100644 --- a/http-service/src/main/java/net/runelite/http/service/item/ItemController.java +++ b/http-service/src/main/java/net/runelite/http/service/item/ItemController.java @@ -30,7 +30,9 @@ import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; @@ -197,9 +199,16 @@ public class ItemController itemIds = Arrays.copyOf(itemIds, MAX_BATCH_LOOKUP); } + Set seen = new HashSet<>(); List itemPrices = new ArrayList<>(itemIds.length); for (int itemId : itemIds) { + if (seen.contains(itemId)) + { + continue; + } + seen.add(itemId); + ItemEntry item = itemService.getItem(itemId); PriceEntry priceEntry = itemService.getPrice(itemId, null);