Pyrotech

Pyrotech

897k Downloads

Intermittent startup crash

codetaylor opened this issue · 4 comments

commented

The Athenaeum util method in the call stack is just delegating to TileEntityFurnace#getItemBurnTime(ItemStack).

image

In the furnace method the item stack is null and causes a NPE.

The event is fired from within the ItemStack and the stack (this) is passed to the event. There's no way that the event is being fired with a null stack field, but it is still arriving with a null stack.

This means that the call stack begins with a non-null ItemStack and ends with a null ItemStack. This, paired with the intermittent occurrence, leads me to believe that something in another thread is is causing the tooltip event's ItemStack to occasionally arrive null.

I can't discover the root of the problem; the best I can do here is to mask the symptom with a null check.

commented

This has been patched in 1.4.20.

Since the root of the problem is unknown, you may experience the crash again with a different mod's tooltip event handler.

commented

In retrospect, the crash could theoretically still occur in this mod even with the patch. If another thread is messing with the event's ItemStack field, then it's possible that it could still mess with the field between the newly introduced null check and the terminal frame indicated in the stack trace. The only thing the patch prevents is the case where the event arrives at the event handler with a null ItemStack field.

It's quite possible the patch doesn't prevent the symptoms.

¯\_(ツ)_/¯

commented

Hey Taylor, I did some testing and my theory regarding items being disabled seems to be true, I have BuildCraft installed in my modpack, and as per usual I will disable some of the items present in the mod via its objects.cfg configuration file, doing said task again and disabling a large portion of the items provoked the crash on a newly created client, completely reverting my changes allowed the client to launch perfectly fine again, oddly enough RailCraft's configuration file that does something similar didn't cause any issue, the problem seems to lie with BuildCraft's code.
This was tested on version 1.4.19 of PyroTech, as 1.4.20 hasn't been published to CurseForge as of writing this comment. I'm unaware of whether your patch does anything yet.