AIOOBE in Parent.updateCachedBounds causing an infinite loop in scenegraph

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: P3
    • tbd
    • Affects Version/s: 8u161
    • Component/s: javafx
    • None

      We don't yet have a reproduceable scenario in our complex JavaFX but we managed to produce the following stack more often lately.

      The problem is once the application gets into this state it is broken until you restart it. I think that the loop there should do a defensive index check and just log an error.

      java.lang.ArrayIndexOutOfBoundsException: -1
      at java.util.ArrayList.elementData(ArrayList.java:418)
      at java.util.ArrayList.get(ArrayList.java:431)
      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)

            Assignee:
            Unassigned
            Reporter:
            Tom Schindl
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: