TeamDman / SuperFactoryManager

Mozilla Public License 2.0
37 stars 15 forks source link

Cannot invoke "ca.teamdman.sfml.SFMLParser$LabelaccessContext.sidequalifier()" because "ctx" is null #138

Closed chase-robbins closed 10 hours ago

chase-robbins commented 1 week ago

Error occurs when player who is using SFM joins multiplayer server. Unsure of more specific replication steps.

Full Server Logs:

12:00:25  [Error] [sfm/]: Encountered unhandled error while compiling program
java.lang.NullPointerException: Cannot invoke "ca.teamdman.sfml.SFMLParser$LabelaccessContext.sidequalifier()" because "ctx" is null
at ca.teamdman.sfml.ast.ASTBuilder.visitLabelaccess(ASTBuilder.java:248) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfml.ast.ASTBuilder.visitOutputstatement(ASTBuilder.java:237) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfml.ast.ASTBuilder.visitOutputstatement(ASTBuilder.java:14) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfml.SFMLParser$OutputstatementContext.accept(SFMLParser.java:916) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18) ~[antlr4-runtime-4.9.1.jar%2351!/:4.9.1] {}
at ca.teamdman.sfml.ast.ASTBuilder.visitOutputStatementStatement(ASTBuilder.java:219) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfml.ast.ASTBuilder.visitOutputStatementStatement(ASTBuilder.java:14) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfml.SFMLParser$OutputStatementStatementContext.accept(SFMLParser.java:542) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18) ~[antlr4-runtime-4.9.1.jar%2351!/:4.9.1] {}
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] {}
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?] {}
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] {}
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] {}
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?] {}
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] {}
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?] {}
at ca.teamdman.sfml.ast.ASTBuilder.visitBlock(ASTBuilder.java:623) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfml.ast.ASTBuilder.visitTimerTrigger(ASTBuilder.java:131) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfml.ast.ASTBuilder.visitTimerTrigger(ASTBuilder.java:14) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfml.SFMLParser$TimerTriggerContext.accept(SFMLParser.java:305) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18) ~[antlr4-runtime-4.9.1.jar%2351!/:4.9.1] {}
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] {}
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?] {}
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] {}
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] {}
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?] {}
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] {}
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[?:?] {}
at ca.teamdman.sfml.ast.ASTBuilder.visitProgram(ASTBuilder.java:117) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfml.ast.Program.compile(Program.java:61) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfm.common.item.DiskItem.updateDetails(DiskItem.java:52) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfm.common.blockentity.ManagerBlockEntity.lambda$rebuildProgramAndUpdateDisk$4(ManagerBlockEntity.java:136) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at java.util.Optional.flatMap(Optional.java:289) ~[?:?] {re:mixin}
at ca.teamdman.sfm.common.blockentity.ManagerBlockEntity.rebuildProgramAndUpdateDisk(ManagerBlockEntity.java:136) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfm.common.blockentity.ManagerBlockEntity.lambda$setProgram$2(ManagerBlockEntity.java:94) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at java.util.Optional.ifPresent(Optional.java:178) ~[?:?] {re:mixin}
at ca.teamdman.sfm.common.blockentity.ManagerBlockEntity.setProgram(ManagerBlockEntity.java:92) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfm.common.net.ServerboundManagerProgramPacket.lambda$handle$0(ServerboundManagerProgramPacket.java:40) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at ca.teamdman.sfm.common.registry.SFMPackets.lambda$handleServerboundContainerPacket$0(SFMPackets.java:210) ~[Super%20Factory%20Manager-1.20.1-4.15.1.jar%23825!/:4.15.1] {re:classloading}
at net.minecraft.util.thread.BlockableEventLoop.m_18693_(BlockableEventLoop.java:67) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin,pl:mixin:A}
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?] {}
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:classloading,re:mixin}
at net.minecraft.util.thread.BlockableEventLoop.m_6367_(BlockableEventLoop.java:156) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin,pl:mixin:A}
at net.minecraft.util.thread.ReentrantBlockableEventLoop.m_6367_(ReentrantBlockableEventLoop.java:23) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,re:computing_frames,re:classloading}
at net.minecraft.server.MinecraftServer.m_6367_(MinecraftServer.java:770) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:inject_resources.MinecraftServerMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin,pl:mixin:APP:ae2.mixins.json:spatial.MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:dankstorage.mixins.json:MinecraftServerAccess,pl:mixin:A}
at net.minecraft.server.MinecraftServer.m_6367_(MinecraftServer.java:161) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:inject_resources.MinecraftServerMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin,pl:mixin:APP:ae2.mixins.json:spatial.MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:dankstorage.mixins.json:MinecraftServerAccess,pl:mixin:A}
at net.minecraft.util.thread.BlockableEventLoop.m_7245_(BlockableEventLoop.java:130) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin,pl:mixin:A}
at net.minecraft.server.MinecraftServer.m_129961_(MinecraftServer.java:753) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:inject_resources.MinecraftServerMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin,pl:mixin:APP:ae2.mixins.json:spatial.MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:dankstorage.mixins.json:MinecraftServerAccess,pl:mixin:A}
at net.minecraft.server.MinecraftServer.m_7245_(MinecraftServer.java:747) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:inject_resources.MinecraftServerMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin,pl:mixin:APP:ae2.mixins.json:spatial.MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:dankstorage.mixins.json:MinecraftServerAccess,pl:mixin:A}
at net.minecraft.util.thread.BlockableEventLoop.m_18701_(BlockableEventLoop.java:139) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin,pl:mixin:A}
at net.minecraft.server.MinecraftServer.m_130012_(MinecraftServer.java:733) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:inject_resources.MinecraftServerMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin,pl:mixin:APP:ae2.mixins.json:spatial.MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:dankstorage.mixins.json:MinecraftServerAccess,pl:mixin:A}
at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:665) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:inject_resources.MinecraftServerMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin,pl:mixin:APP:ae2.mixins.json:spatial.MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:dankstorage.mixins.json:MinecraftServerAccess,pl:mixin:A}
at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.20.1-20230612.114412-srg.jar%23887!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:inject_resources.MinecraftServerMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin,pl:mixin:APP:ae2.mixins.json:spatial.MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:dankstorage.mixins.json:MinecraftServerAccess,pl:mixin:A}
at java.lang.Thread.run(Thread.java:833) ~[?:?] {re:mixin}
TeamDman commented 3 days ago

If you still have the code that they have in the manager that'd help

The error isn't much to worry about, just means there's a syntax error in their program somewhere and SFM isn't handling it as prettily as it could be

TeamDman commented 10 hours ago

This happened because SFM was proceeding with program visitation even if there were parser errors present. New versions will stop builds at parser errors instead of trying to continue lol

Since users making typos in code is a normal part of the process of using the mod, there is no need for such scary messages in the server console.

Thanks for the report!