Control Engineering

Control Engineering

251k Downloads

Server Crash: clicking remapable faces throws a NoClassDefFoundError

keifhausin opened this issue ยท 1 comments

commented

Discovered in 8089bd5 but most likely introduced in '17a6b9b' , '8cc687e', or '922615a'

This works in single player but crashes the server with a NoClassDefFoundError the class that cant be found is net/minecraft/client/gui/screens/inventory/MenuAccess

Repro steps:

  1. set up a modded server with the latest build of CE
  2. place down any of the following items: ( Control panel CNC, keyboard perforator, or rs wire remapper*)
  3. right-click the bus connection face ( * for remapper use a screwdriver)
  4. watch server crash

I suspect this is an issue with something getting lost or assumed in the call stack of super calls, or something with the simpleMenuProvider assuming a resource id. I know very little about making menus in minecraft so i might be wildly off

This is the stack trace I get on the server

java.lang.NoClassDefFoundError: net/minecraft/client/gui/screens/inventory/MenuAccess
        at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?] {}
        at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?] {}
        at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:116) ~[securejarhandler-1.0.3.jar:?] {}
        at cpw.mods.cl.ModuleClassLoader.lambda$findClass$16(ModuleClassLoader.java:216) ~[securejarhandler-1.0.3.jar:?] {}
        at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:226) ~[securejarhandler-1.0.3.jar:?] {}
        at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:216) ~[securejarhandler-1.0.3.jar:?] {}
        at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:132) ~[securejarhandler-1.0.3.jar:?] {}
        at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}
        at malte0811.controlengineering.gui.remapper.AbstractRemapperMenu.<init>(AbstractRemapperMenu.java:28) ~[ControlEngineering-0.1.1-GH-23.jar%2340!/:?] {re:classloading}
        at malte0811.controlengineering.gui.remapper.ParallelPortMapperMenu.<init>(ParallelPortMapperMenu.java:14) ~[ControlEngineering-0.1.1-GH-23.jar%2340!/:?] {re:classloading}
        at malte0811.controlengineering.gui.remapper.ParallelPortMapperMenu$Type.lambda$provider$0(ParallelPortMapperMenu.java:25) ~[ControlEngineering-0.1.1-GH-23.jar%2340!/:?] {re:classloading}
        at net.minecraft.world.SimpleMenuProvider.m_7208_(SimpleMenuProvider.java:25) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading}
        at net.minecraftforge.network.NetworkHooks.openGui(NetworkHooks.java:199) ~[forge-1.18.2-40.1.19-universal.jar%2356!/:?] {re:classloading}
        at net.minecraftforge.network.NetworkHooks.openGui(NetworkHooks.java:153) ~[forge-1.18.2-40.1.19-universal.jar%2356!/:?] {re:classloading}
        at malte0811.controlengineering.blockentity.bus.ParallelPort.lambda$makeRemapInteraction$1(ParallelPort.java:154) ~[ControlEngineering-0.1.1-GH-23.jar%2340!/:?] {re:classloading}
        at malte0811.controlengineering.blocks.shapes.SingleShape.onUse(SingleShape.java:49) ~[ControlEngineering-0.1.1-GH-23.jar%2340!/:?] {re:classloading}
        at malte0811.controlengineering.blocks.shapes.SelectionShapes.onUse(SelectionShapes.java:60) ~[ControlEngineering-0.1.1-GH-23.jar%2340!/:?] {re:classloading}
        at malte0811.controlengineering.blocks.CEBlock.m_6227_(CEBlock.java:149) ~[ControlEngineering-0.1.1-GH-23.jar%2340!/:?] {re:classloading}
        at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.m_60664_(BlockBehaviour.java:697) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:mixin,re:classloading,pl:mixin:APP:immersiveengineering.mixins.json:coremods.AbstractBlockStateMixin,pl:mixin:A}
        at net.minecraft.server.level.ServerPlayerGameMode.m_7179_(ServerPlayerGameMode.java:344) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading}
        at net.minecraft.server.network.ServerGamePacketListenerImpl.m_6371_(ServerGamePacketListenerImpl.java:987) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:immersiveengineering.mixins.json:accessors.ServerPlayNetHandlerAccess,pl:mixin:A}
        at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.m_5797_(ServerboundUseItemOnPacket.java:30) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading}
        at net.minecraft.network.protocol.game.ServerboundUseItemOnPacket.m_5797_(ServerboundUseItemOnPacket.java:8) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading}
        at net.minecraft.network.protocol.PacketUtils.m_131356_(PacketUtils.java:22) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading}
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading}
        at net.minecraft.util.thread.BlockableEventLoop.m_6367_(BlockableEventLoop.java:157) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.util.thread.ReentrantBlockableEventLoop.m_6367_(ReentrantBlockableEventLoop.java:23) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading}
        at net.minecraft.server.MinecraftServer.m_6367_(MinecraftServer.java:799) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.server.MinecraftServer.m_6367_(MinecraftServer.java:164) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.util.thread.BlockableEventLoop.m_7245_(BlockableEventLoop.java:131) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.server.MinecraftServer.m_129961_(MinecraftServer.java:782) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.server.MinecraftServer.m_7245_(MinecraftServer.java:776) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.util.thread.BlockableEventLoop.m_18701_(BlockableEventLoop.java:140) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.server.MinecraftServer.m_130012_(MinecraftServer.java:762) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:689) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.server.MinecraftServer.m_177918_(MinecraftServer.java:261) ~[server-1.18.2-20220404.173914-srg.jar%2352!/:?] {re:classloading,pl:accesstransformer:B}
        at java.lang.Thread.run(Thread.java:833) [?:?] {}
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.gui.screens.inventory.MenuAccess
        at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:138) ~[securejarhandler-1.0.3.jar:?] {}
        at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}
        ... 37 more
commented

The bug exists in the build before #30 got merged bf49637
I've not gone in and built the jar for each of the interstitial commits yet