Hi Stefan, >From code review it seems that this is not the case. I'll ask my team mate to >check this programmatically just to make sure...
Note that JDK-8163078 contains a code example which reproduces the exception but adds and removes listeners on the JavaFX thread. Kind regards, Daniel > -----Original Message----- > From: Stefan Fuchs [mailto:snfu...@gmx.de] > Sent: Wednesday, November 09, 2016 7:59 PM > To: Daniel Glöckner; openjfx-dev@openjdk.java.net > Subject: Re: JDK-8163078 ArrayIndexOutOfBounds is thrown in > Parent.updateCachedBounds > > 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(ObservableListWrappe > r.java:89) > > at > com.sun.javafx.collections.VetoableListDecorator.get(VetoableListDecorator.ja > va: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(Quantum > Toolkit.java:319) > > at > com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.jav > a:95) > > at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) > > at > com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:19 > 1) > > at java.lang.Thread.run(Unknown Source) > >