TheCodex6824 / ThaumcraftFix

GNU General Public License v3.0
8 stars 3 forks source link

Odd infusion crash #34

Open IcarussOne opened 3 months ago

IcarussOne commented 3 months ago
[Client thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.fml.common.gameevent.TickEvent$ClientTickEvent@a3342a:
java.lang.NullPointerException: null
    at thaumcraft.client.lib.events.RenderEventHandler.clientWorldTick(RenderEventHandler.java:251) ~[RenderEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_10_RenderEventHandler_clientWorldTick_ClientTickEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) [EventBus.class:?]
    at net.minecraftforge.fml.common.FMLCommonHandler.onPreClientTick(FMLCommonHandler.java:344) [FMLCommonHandler.class:?]
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1708) [bib.class:?]
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1098) [bib.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:4614) [bib.class:?]
    at net.minecraft.client.main.Main.main(SourceFile:123) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_411]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_411]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_411]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_411]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100) [NewLaunch.jar:?]
    at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129) [NewLaunch.jar:?]
    at org.prismlauncher.EntryPoint.main(EntryPoint.java:70) [NewLaunch.jar:?]
TheCodex6824 commented 3 months ago

Hard to tell exactly what is happening here, but my best guess is that there is a race condition in the handling of the sourceFX map. It looks like Thaumcraft has multiple places where it checks if the map contains a given essentia source, but then in a separate operation gets it from the map. It's possible for it to pass the initial check for its presence in the map but then have it quickly get removed before it can actually retrieve the essentia source, which will cause problems.