luhsra / MinimaxSimulator

Platform independent GUI-based Minimax simulator
https://luhsra.github.io/MinimaxSimulator/
MIT License
7 stars 5 forks source link

JavaFX NullpointerException crashes GUI of Steuertabelle #65

Open cediwelli opened 1 year ago

cediwelli commented 1 year ago

What happens: The Steuertabelle will gray-out and loses all of its contents. Adding new rows or trying to use any of the other controls on the right is ineffective.

How it looks: https://imgur.com/a/Z2GLbuj

How to reproduce: I can not reproduce the Error easily. It usually happens when deleting rows from the Steuertabelle but not always.

I am on Linux cwm10 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64 GNU/Linux Java version:

openjdk 17.0.4 2022-07-19
OpenJDK Runtime Environment (build 17.0.4+8-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 17.0.4+8-Debian-1deb11u1, mixed mode, sharing)

terminal output:

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Cannot invoke "javafx.scene.control.TableCell.tableColumnProperty()" because the return value of "javafx.scene.control.skin.TableCellSkin.getSkinnable()" is null
    at javafx.scene.control.skin.TableCellSkin.tableColumnProperty(TableCellSkin.java:97)
    at javafx.scene.control.skin.TableCellSkinBase.getTableColumn(TableCellSkinBase.java:123)
    at javafx.scene.control.skin.TableCellSkinBase.dispose(TableCellSkinBase.java:136)
    at javafx.scene.control.skin.TableCellSkin.dispose(TableCellSkin.java:88)
    at javafx.scene.control.Control$2.invalidated(Control.java:267)
    at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
    at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
    at javafx.css.StyleableObjectProperty.set(StyleableObjectProperty.java:82)
    at javafx.scene.control.Control$2.set(Control.java:250)
    at javafx.scene.control.Control$2.set(Control.java:233)
    at javafx.scene.control.Control.setSkin(Control.java:230)
    at javafx.scene.control.skin.TableRowSkinBase.recreateCells(TableRowSkinBase.java:715)
    at javafx.scene.control.skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:505)
    at javafx.scene.control.skin.TableRowSkinBase.checkState(TableRowSkinBase.java:649)
    at javafx.scene.control.skin.TableRowSkinBase.computePrefHeight(TableRowSkinBase.java:588)
    at javafx.scene.control.Control.computePrefHeight(Control.java:570)
    at javafx.scene.Parent.prefHeight(Parent.java:1037)
    at javafx.scene.layout.Region.prefHeight(Region.java:1559)
    at javafx.scene.control.skin.VirtualFlow.resizeCellSize(VirtualFlow.java:1863)
    at javafx.scene.control.skin.VirtualFlow.addLeadingCells(VirtualFlow.java:1948)
    at javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1250)
    at javafx.scene.Parent.layout(Parent.java:1204)
    at javafx.scene.Parent.layout(Parent.java:1211)
    at javafx.scene.Parent.layout(Parent.java:1211)
    at javafx.scene.Parent.layout(Parent.java:1211)
    at javafx.scene.Parent.layout(Parent.java:1211)
    at javafx.scene.Parent.layout(Parent.java:1211)
    at javafx.scene.Scene.doLayoutPass(Scene.java:576)
    at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2482)
    at com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
    at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:519)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
    at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
    at java.base/java.lang.Thread.run(Thread.java:833)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Cannot invoke "javafx.scene.control.TableCell.tableColumnProperty()" because the return value of "javafx.scene.control.skin.TableCellSkin.getSkinnable()" is null
    at javafx.scene.control.skin.TableCellSkin.tableColumnProperty(TableCellSkin.java:97)
    at javafx.scene.control.skin.TableCellSkinBase.getTableColumn(TableCellSkinBase.java:123)
    at javafx.scene.control.skin.TableCellSkinBase.dispose(TableCellSkinBase.java:136)
    at javafx.scene.control.skin.TableCellSkin.dispose(TableCellSkin.java:88)
    at javafx.scene.control.Control$2.invalidated(Control.java:267)
    at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
    at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
    at javafx.css.StyleableObjectProperty.set(StyleableObjectProperty.java:82)
    at javafx.scene.control.Control$2.set(Control.java:250)
    at javafx.scene.control.Control$2.set(Control.java:233)
    at javafx.scene.control.Control.setSkin(Control.java:230)
    at javafx.scene.control.skin.TableRowSkinBase.recreateCells(TableRowSkinBase.java:715)
    at javafx.scene.control.skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:505)
    at javafx.scene.control.skin.TableRowSkinBase.checkState(TableRowSkinBase.java:649)
    at javafx.scene.control.skin.TableRowSkinBase.computePrefHeight(TableRowSkinBase.java:588)
    at javafx.scene.control.Control.computePrefHeight(Control.java:570)
    at javafx.scene.Parent.prefHeight(Parent.java:1037)
    at javafx.scene.layout.Region.prefHeight(Region.java:1559)
    at javafx.scene.control.skin.VirtualFlow.resizeCellSize(VirtualFlow.java:1863)
    at javafx.scene.control.skin.VirtualFlow.addLeadingCells(VirtualFlow.java:1948)
    at javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1250)
    at javafx.scene.control.skin.VirtualFlow$5.invalidated(VirtualFlow.java:837)
    at javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113)
    at javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:148)
    at javafx.scene.control.skin.VirtualFlow.setCellCount(VirtualFlow.java:855)
    at javafx.scene.control.skin.TableViewSkinBase.updateItemCount(TableViewSkinBase.java:549)
    at javafx.scene.control.skin.VirtualContainerBase.checkState(VirtualContainerBase.java:170)
    at javafx.scene.control.skin.VirtualContainerBase.layoutChildren(VirtualContainerBase.java:145)
    at javafx.scene.control.skin.TableViewSkinBase.layoutChildren(TableViewSkinBase.java:407)
    at javafx.scene.control.Control.layoutChildren(Control.java:601)
    at javafx.scene.Parent.layout(Parent.java:1204)
    at javafx.scene.Parent.layout(Parent.java:1211)
    at javafx.scene.Parent.layout(Parent.java:1211)
    at javafx.scene.Parent.layout(Parent.java:1211)
    at javafx.scene.Parent.layout(Parent.java:1211)
    at javafx.scene.Scene.doLayoutPass(Scene.java:576)
    at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2482)
    at com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
    at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:519)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
    at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
    at java.base/java.lang.Thread.run(Thread.java:833)