Skip to content

Issue with Layered Popup Panels #71

@ghzdude

Description

@ghzdude

if you have a ui with a button that opens popup A, and popup A has a button that opens popup B, closing A then B will log an exception. Specifically, when closing B after closing A, A tries to close again but can't because it has already been closed.

this issue was discovered in GregTechCEu/GregTech#2510, and I went around the issue by closing all popup B panels when closing popup A. however, i don't think this roundabout fix is desirable to implement into ModularUI itself.

the logged exception:

java.util.concurrent.ExecutionException: java.lang.NullPointerException: No PanelSyncManager found for name 'entry_selector'!
	at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_422]
	at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_422]
	at net.minecraft.util.Util.runTask(Util.java:51) [Util.class:?]
	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:797) [MinecraftServer.class:?]
	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:742) [MinecraftServer.class:?]
	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) [IntegratedServer.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:591) [MinecraftServer.class:?]
	at java.lang.Thread.run(Thread.java:750) [?:1.8.0_422]
Caused by: java.lang.NullPointerException: No PanelSyncManager found for name 'entry_selector'!
	at com.cleanroommc.modularui.value.sync.ModularSyncManager.getPanelSyncManager(ModularSyncManager.java:66) ~[ModularSyncManager.class:?]
	at com.cleanroommc.modularui.value.sync.ModularSyncManager.receiveWidgetUpdate(ModularSyncManager.java:101) ~[ModularSyncManager.class:?]
	at com.cleanroommc.modularui.network.packets.PacketSyncHandler.executeServer(PacketSyncHandler.java:64) ~[PacketSyncHandler.class:?]
	at com.cleanroommc.modularui.network.NetworkHandler.lambda$static$2(NetworkHandler.java:67) ~[NetworkHandler.class:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_422]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_422]
	at net.minecraft.util.Util.runTask(Util.java:50) ~[Util.class:?]
	... 5 more
Caused by: java.lang.NullPointerException: No PanelSyncManager found for name 'entry_selector'!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions