Ender IO Zoo

Ender IO Zoo

961k Downloads

1.12.2 Sag Mill recipes vanished from JEI while browsing them.

Janitor53 opened this issue · 7 comments

commented

Issue Description:

Fresh install with only JEI and EnderIO.

What happens:

Some recipes from Sag Mill vanished when trying to browse them.
Multiple "[main/ERROR]: Error caught from Recipe Category: crazypants.enderio.machines.integration.jei.sagmill.SagMillRecipeCategory
java.lang.NullPointerException: null" errors in log.

What you expected to happen:

Normal function.

Steps to reproduce:

Video: https://youtu.be/h9Lz8mBg05U

  1. Open JEI, type in "sag"
  2. Press U on Sag Mill
  3. List recipes with arrow on the right. Total recipes counter will be dropped down after each page,

Affected Versions (Do not use "latest"):

  • EnderIO: 5.0.24
  • EnderCore: 0.5.22
  • Minecraft: 1.12.2
  • Forge: 14.23.3.2655
  • JEI: 4.9.1.188

Your most recent log file where the issue was present:

https://pastebin.com/q1AX1Vu8

commented

@mezz can you please have a look at the stack trace? To me it looks like ingredientHelper.expandSubtypes(ingredients) returns a list with a null element---which shouldn't be possible.

commented

That method will return a null element for any input that is null.
That functionality is used for showing rotating items in recipes where one is blank.

commented

Based on the stack trace, this is a JEI issue. I'll look into resolving it now.

commented

Fixed in JEI 4.9.1.191

commented

Thanks mezz, I lost my way within the indirections inside that method ;). Must have missed the part where it lets that null through.

So this was probably the Grinding Ball list, that one has one empty element.

commented

That's why I have subclassed NonNullList into a type that is much saner to use. We now use that one almost everywhere.

commented

Yeah exactly.

I really want @Nullable annotations that work for generics (like List<@Nullable T>), most implementations are old and don't work with it, including the one Mojang is using.