JDK-8163078 ArrayIndexOutOfBounds is thrown in Parent.updateCachedBounds

Stefan Fuchs snfuchs at gmx.de
Wed Nov 9 18:59:23 UTC 2016


Hi Daniel,

are you registering or removing the listeners on  a thread other than 
the JavaFX Application Thread?
I think the Observables are not thread save.


-- regards
  Stefan

> Hi guys,
>
> We're facing an exception triggered from Parent.updateCachedBounds. I've pasted the stack trace below.
>
> This looks very similar to https://bugs.openjdk.java.net/browse/JDK-8163078.
>
> We have a few listeners to layoutBounds property, similar to the reporter of that issue. This seems to trigger the issue.
>
> For us it's hard to reproduce this issue in our application. If the bug shows up the result is quite disastrous though. The application freezes in this case.
>
> Has anyone observed this bug or is aware of a workaround? P4 suggests that it's a low priority issue with minor loss of functionality... really?
>
> Kind regards,
> Daniel
>
>   ERROR [28.10.16 13:01:45.415] DefaultLogger uncaughtException()
> java.lang.ArrayIndexOutOfBoundsException: -1
> 	at java.util.ArrayList.elementData(Unknown Source)
> 	at java.util.ArrayList.get(Unknown Source)
> 	at com.sun.javafx.collections.ObservableListWrapper.get(ObservableListWrapper.java:89)
> 	at com.sun.javafx.collections.VetoableListDecorator.get(VetoableListDecorator.java:306)
> 	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:3579)
> 	at javafx.scene.Node.getGeomBounds(Node.java:3532)
> 	at javafx.scene.Node.getLocalBounds(Node.java:3480)
> 	at javafx.scene.Node.updateTxBounds(Node.java:3643)
> 	at javafx.scene.Node.getTransformedBounds(Node.java:3426)
> 	at javafx.scene.Node.updateBounds(Node.java:559)
> 	at javafx.scene.Parent.updateBounds(Parent.java:1719)
> 	at javafx.scene.Parent.updateBounds(Parent.java:1717)
> 	at javafx.scene.Parent.updateBounds(Parent.java:1717)
> 	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)
> 	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
> 	at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
> 	at java.lang.Thread.run(Unknown Source)
>



More information about the openjfx-dev mailing list