Johni0702 / bobby

GNU General Public License v3.0
216 stars 57 forks source link

[1.20.1] thread issue when using bobby and replaymod trying to export #259

Closed netcore10 closed 6 months ago

netcore10 commented 8 months ago

2024-03-21-2.log

specifically [15:16:44] [bobby-loading-1-172/ERROR]: [voicechat] Uncaught exception in thread bobby-loading-1-172 java.lang.NullPointerException: null

repeatedly happened when it crashed.

removing bobby let the export continue

Johni0702 commented 6 months ago

This is an issue in Fluidlogged, note the third line:

[15:13:47] [bobby-loading-1-19/ERROR]: [voicechat] Uncaught exception in thread bobby-loading-1-19
java.lang.NullPointerException: Cannot invoke "it.unimi.dsi.fastutil.shorts.Short2ObjectMap.isEmpty()" because "this.fluidStates" is null
    at net.minecraft.world.chunk.ChunkSection.handler$hce000$fluidlogged$injectHasOnlyAir(ChunkSection.java:1075) ~[minecraft-1.20.1.i0:0/:?]
    at net.minecraft.world.chunk.ChunkSection.isEmpty(ChunkSection.java:98) ~[minecraft-1.20.1.i0:0/:?]
    at de.johni0702.minecraft.bobby.ChunkSerializer.deserialize(ChunkSerializer.java:215) ~[bobby-5.0.1.i0:0/:?]
    at de.johni0702.minecraft.bobby.FakeChunkManager$LoadingJob.lambda$run$0(FakeChunkManager.java:405) ~[bobby-5.0.1.i0:0/:?]
    at java.util.Optional.map(Unknown Source) ~[?:?]
    at de.johni0702.minecraft.bobby.FakeChunkManager$LoadingJob.run(FakeChunkManager.java:405) ~[bobby-5.0.1.i0:0/:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
    at java.lang.Thread.run(Unknown Source) ~[?:?]

Only affects the ReplayMod export because Bobby will wait for all chunks to load before every frame during ReplayMod rendering, but that doesn't ever complete when Fluidlogged causes some of those loads to fail.