From 225f10cdc8cf33c04a65e5cabe7c839bd231a2a8 Mon Sep 17 00:00:00 2001 From: mezz Date: Wed, 5 Oct 2016 00:28:40 -0700 Subject: [PATCH] Protect against ItemStack crashes in ErrorUtil logging (#500) --- src/main/java/mezz/jei/util/ErrorUtil.java | 24 +++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/main/java/mezz/jei/util/ErrorUtil.java b/src/main/java/mezz/jei/util/ErrorUtil.java index 9ef29096e..0fadc6f99 100644 --- a/src/main/java/mezz/jei/util/ErrorUtil.java +++ b/src/main/java/mezz/jei/util/ErrorUtil.java @@ -149,15 +149,25 @@ public static List getItemStackIngredientsInfo(@Nullable List list) { for (Object ingredient : list) { List ingredientInfo = new ArrayList(); - List stacks = stackHelper.toItemStackList(ingredient); - String oreDict = stackHelper.getOreDictEquivalent(stacks); - if (oreDict != null) { - ingredientInfo.add("OreDict: " + oreDict); + List stacks = null; + try { + stacks = stackHelper.toItemStackList(ingredient); + } catch (RuntimeException ignored) { + ingredientInfo.add("too broken to get info"); + } catch (LinkageError ignored) { + ingredientInfo.add("too broken to get info"); } + + if (stacks != null) { + String oreDict = stackHelper.getOreDictEquivalent(stacks); + if (oreDict != null) { + ingredientInfo.add("OreDict: " + oreDict); + } - for (ItemStack stack : stacks) { - String itemStackInfo = getItemStackInfo(stack); - ingredientInfo.add(itemStackInfo); + for (ItemStack stack : stacks) { + String itemStackInfo = getItemStackInfo(stack); + ingredientInfo.add(itemStackInfo); + } } ingredientsInfo.add(ingredientInfo.toString() + "\n");