PneumaticCraft: Repressurized

PneumaticCraft: Repressurized

50M Downloads

Crash when putting a machine beside a high-press source

SihenZhang opened this issue ยท 6 comments

commented

Minecraft Version: 1.12.2
Forge Version: 14.23.0.2552
Mod Version: 0.1.0-47
Singleplayer/Multiplayer: Singleplayer
Crash Report: https://paste.ee/p/Ydivp

Additional Information:

  • Mod list can be found in the crash report.
  • When I put a Gas Lift near a Flux Compressor (6.89 bar in it), the client crash.
  • When I try to reappear this crash I found that the crash will happen when putting a Gas Lift connected with a high-press source (a Creative Compressor with 6.9 bar) and right click the Gas Lift to try to open the GUI, the GUI will changed just like below for a while and then crash.
commented

This could be tricky. I managed to reproduce it once, but trying again, it worked (using a Creative Compressor at 6.9 bar - I had to place down about 20 gas lifts before one didn't explode). Looks like the client-side TE reference is null when the crash happens. Maybe you managed to get the GUI open as the gas lift exploded?

commented

It's not the TE reference, it's te.status that's null (which as an Enum it should never be). Looks like the server->client sync via @GuiSynced failed here. Did you also get an exception that looks like the exception below?

17:05:10] [main/ERROR] [pneumaticcraft]: A problem occured when trying to sync the field of me.desht.pneumaticcraft.common.tileentity.TileEntityGasLift@76c5ae04. Field: public me.desht.pneumaticcraft.common.tileentity.TileEntityGasLift$Status me.desht.pneumaticcraft.common.tileentity.TileEntityGasLift.status
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: java.lang.ArrayIndexOutOfBoundsException: -1
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at me.desht.pneumaticcraft.common.inventory.SyncedField$SyncedEnum.injectValue(SyncedField.java:203)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at me.desht.pneumaticcraft.common.inventory.SyncedField$SyncedEnum.injectValue(SyncedField.java:179)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at me.desht.pneumaticcraft.common.inventory.SyncedField.setValue(SyncedField.java:81)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at me.desht.pneumaticcraft.common.inventory.ContainerPneumaticBase.updateField(ContainerPneumaticBase.java:47)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at me.desht.pneumaticcraft.common.network.PacketUpdateGui.handleClientSide(PacketUpdateGui.java:146)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at me.desht.pneumaticcraft.common.network.PacketUpdateGui.handleClientSide(PacketUpdateGui.java:20)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at me.desht.pneumaticcraft.common.network.AbstractPacket.lambda$onMessage$1(AbstractPacket.java:17)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at net.minecraft.util.Util.runTask(Util.java:53)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1176)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at net.minecraft.client.Minecraft.run(Minecraft.java:441)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at net.minecraft.client.main.Main.main(Main.java:118)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at java.lang.reflect.Method.invoke(Method.java:498)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at java.lang.reflect.Method.invoke(Method.java:498)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
[17:05:10] [main/INFO] [STDERR]: [me.desht.pneumaticcraft.common.inventory.SyncedField:setValue:85]: 	at GradleStart.main(GradleStart.java:26)
commented

I've pushed a small fix which may help here. Can you please test again and see if the problem is still occurring?

commented

Sorry, meant to add :you can get an updated build from http://jenkins.k-4u.nl/job/PneumaticCraft-Repressurized/68/

commented

Excellent.

commented

OK.
In the recent nearly 200 attempts, the client didn't crash.
I think the bug has been fixed.