yakout/circus-of-plates

ArrayIndexOutOfBoundsException when moving the Rect

yakout opened this issue · 1 comments

** When moving the rectangle left or right (sometimes) this exception is being thrown:

** main class that being tested is: views.testGame.GameMain

Exception in thread "JavaFX Application Thread" java.lang.ArrayIndexOutOfBoundsException: -1
	at java.util.ArrayList.elementData(ArrayList.java:418)
	at java.util.ArrayList.get(ArrayList.java:431)
	at javafx.scene.Parent.updateCachedBounds(Parent.java:1591)
	at javafx.scene.Parent.recomputeBounds(Parent.java:1535)
	at javafx.scene.Parent.impl_computeGeomBounds(Parent.java:1388)
	at javafx.scene.layout.Region.impl_computeGeomBounds(Region.java:3078)
	at javafx.scene.Node.updateGeomBounds(Node.java:3577)
	at javafx.scene.Node.getGeomBounds(Node.java:3530)
	at javafx.scene.Node.getLocalBounds(Node.java:3478)
	at javafx.scene.Node.updateTxBounds(Node.java:3641)
	at javafx.scene.Node.getTransformedBounds(Node.java:3424)
	at javafx.scene.Node.updateBounds(Node.java:559)
	at javafx.scene.Parent.updateBounds(Parent.java:1719)
	at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2404)
	at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:354)
	at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:381)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:510)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:490)
	at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$404(QuantumToolkit.java:319)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Exception in thread "JavaFX Application Thread" java.lang.ArrayIndexOutOfBoundsException: -1
	at java.util.ArrayList.elementData(ArrayList.java:418)
	at java.util.ArrayList.get(ArrayList.java:431)
	at javafx.scene.Parent.updateCachedBounds(Parent.java:1591)
	at javafx.scene.Parent.recomputeBounds(Parent.java:1535)
	at javafx.scene.Parent.impl_computeGeomBounds(Parent.java:1388)
	at javafx.scene.layout.Region.impl_computeGeomBounds(Region.java:3078)
	at javafx.scene.Node.updateGeomBounds(Node.java:3577)
	at javafx.scene.Node.getGeomBounds(Node.java:3530)
	at javafx.scene.Node.getLocalBounds(Node.java:3478)
	at javafx.scene.Node.updateTxBounds(Node.java:3641)
	at javafx.scene.Node.getTransformedBounds(Node.java:3424)
	at javafx.scene.Node.updateBounds(Node.java:559)
	at javafx.scene.Parent.updateBounds(Parent.java:1719)
	at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2404)
	at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:354)
	at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:381)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:510)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:490)
	at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$404(QuantumToolkit.java:319)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)

The problem was that i was trying to update the ui view (moving the rect left or right) from the joystick thread.
Solved with "Platform.runLater()" at the moment.