MovingBlocks / Terasology

Terasology - open source voxel world
http://terasology.org
Apache License 2.0
3.69k stars 1.34k forks source link

Module details when a module exists with unresolved dependencies causes crash #3464

Closed Cervator closed 5 years ago

Cervator commented 6 years ago

What you were trying to do

View module details for GooeyDefence to figure out its dependencies and what might be missing

What actually happened

Game crashed when I clicked "FlexiblePathfinding" (the missing dependency)

How to reproduce

Log details and game version

Omega 977

12:23:21.566 [main] WARN  o.t.engine.internal.TimeBase - Delta too great (10474), capping to 1000
12:23:21.572 [main] INFO  o.t.logic.console.ConsoleImpl - [NOTIFICATION] Identity storage service: No configuration data is present, staying logged out.
12:24:08.604 [main] ERROR o.terasology.engine.TerasologyEngine - Uncaught exception, attempting clean game shutdown
java.lang.NullPointerException: null
    at org.terasology.rendering.nui.layers.mainMenu.moduleDetailsScreen.ModuleDetailsScreen$6.get(ModuleDetailsScreen.java:229)
    at org.terasology.rendering.nui.layers.mainMenu.moduleDetailsScreen.ModuleDetailsScreen$6.get(ModuleDetailsScreen.java:225)
    at org.terasology.rendering.nui.widgets.UILabel.getText(UILabel.java:68)
    at org.terasology.rendering.nui.widgets.UILabel.getPreferredContentSize(UILabel.java:101)
    at org.terasology.rendering.nui.internal.CanvasImpl.calculateRestrictedSize(CanvasImpl.java:347)
    at org.terasology.rendering.nui.layouts.ColumnLayout.calculateRowSize(ColumnLayout.java:212)
    at org.terasology.rendering.nui.layouts.ColumnLayout.lambda$onDraw$0(ColumnLayout.java:133)
    at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
    at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
    at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
    at java.util.stream.ReferencePipeline.collect(Unknown Source)
    at org.terasology.rendering.nui.layouts.ColumnLayout.onDraw(ColumnLayout.java:133)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.relative.RelativeLayout.onDraw(RelativeLayout.java:85)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.ColumnLayout.onDraw(ColumnLayout.java:191)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.relative.RelativeLayout.onDraw(RelativeLayout.java:85)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.relative.RelativeLayout.onDraw(RelativeLayout.java:85)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.ColumnLayout.onDraw(ColumnLayout.java:191)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.relative.RelativeLayout.onDraw(RelativeLayout.java:85)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.relative.RelativeLayout.onDraw(RelativeLayout.java:85)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.CoreScreenLayer.onDraw(CoreScreenLayer.java:115)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.internal.NUIManagerInternal.render(NUIManagerInternal.java:475)
    at org.terasology.engine.modes.StateMainMenu.render(StateMainMenu.java:210)
    at org.terasology.engine.subsystem.lwjgl.LwjglGraphics.postUpdate(LwjglGraphics.java:166)
    at org.terasology.engine.TerasologyEngine.tick(TerasologyEngine.java:467)
    at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:421)
    at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:397)
    at org.terasology.engine.Terasology.main(Terasology.java:154)
12:24:08.610 [main] INFO  o.terasology.engine.TerasologyEngine - Shutting down Terasology...
12:24:08.972 [main] WARN  o.t.w.g.i.WorldGeneratorManager - Could not resolve dependencies for module: GooeyDefence-0.1.0-SNAPSHOT

Maybe of interest to @ar0ne. Probably not a very difficult bug.

ar0ne commented 6 years ago

I can't reproduce the issue, but probably it was resolved here.

Cervator commented 6 years ago

Re-validated - can still trigger :-)

Grabbed the Alpha 11 RC build, moved FlexiblePathfinding out of the module dir, ran the game, went to advanced game, found GooeyDefence in red, clicked module details for it, clicked the FlexiblePathfinding entry -> boom

19:21:32.646 [main] ERROR o.t.p.t.TypeSerializationLibrary - Unable to register field of type VerticalInfo: not a supported type or MappedContainer
19:21:32.647 [main] ERROR o.t.p.t.TypeSerializationLibrary - Unabled to get class from type float[]
19:21:34.550 [main] ERROR o.terasology.engine.TerasologyEngine - Uncaught exception, attempting clean game shutdown
java.lang.NullPointerException: null
    at org.terasology.rendering.nui.layers.mainMenu.moduleDetailsScreen.ModuleDetailsScreen$6.get(ModuleDetailsScreen.java:232)
    at org.terasology.rendering.nui.layers.mainMenu.moduleDetailsScreen.ModuleDetailsScreen$6.get(ModuleDetailsScreen.java:228)
    at org.terasology.rendering.nui.widgets.UILabel.getText(UILabel.java:68)
    at org.terasology.rendering.nui.widgets.UILabel.getPreferredContentSize(UILabel.java:101)
    at org.terasology.rendering.nui.internal.CanvasImpl.calculateRestrictedSize(CanvasImpl.java:347)
    at org.terasology.rendering.nui.layouts.ColumnLayout.calculateRowSize(ColumnLayout.java:212)
    at org.terasology.rendering.nui.layouts.ColumnLayout.lambda$onDraw$0(ColumnLayout.java:133)
    at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
    at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
    at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
    at java.util.stream.ReferencePipeline.collect(Unknown Source)
    at org.terasology.rendering.nui.layouts.ColumnLayout.onDraw(ColumnLayout.java:133)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.relative.RelativeLayout.onDraw(RelativeLayout.java:85)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.ColumnLayout.onDraw(ColumnLayout.java:191)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.relative.RelativeLayout.onDraw(RelativeLayout.java:85)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.relative.RelativeLayout.onDraw(RelativeLayout.java:85)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.ColumnLayout.onDraw(ColumnLayout.java:191)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.relative.RelativeLayout.onDraw(RelativeLayout.java:85)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.layouts.relative.RelativeLayout.onDraw(RelativeLayout.java:85)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.CoreScreenLayer.onDraw(CoreScreenLayer.java:115)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawStyledWidget(CanvasImpl.java:406)
    at org.terasology.rendering.nui.internal.CanvasImpl.drawWidget(CanvasImpl.java:392)
    at org.terasology.rendering.nui.internal.NUIManagerInternal.render(NUIManagerInternal.java:475)
    at org.terasology.engine.modes.StateMainMenu.render(StateMainMenu.java:210)
    at org.terasology.engine.subsystem.lwjgl.LwjglGraphics.postUpdate(LwjglGraphics.java:166)
    at org.terasology.engine.TerasologyEngine.tick(TerasologyEngine.java:467)
    at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:421)
    at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:397)
    at org.terasology.engine.Terasology.main(Terasology.java:155)
19:21:34.551 [main] INFO  o.terasology.engine.TerasologyEngine - Shutting down Terasology...
19:21:34.936 [main] WARN  o.t.w.g.i.WorldGeneratorManager - Could not resolve dependencies for module: GooeyDefence-0.1.0-SNAPSHOT