Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8198577

AIOOBE in Parent.updateCachedBounds causing an infinite loop in scenegraph

    XMLWordPrintable

    Details

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

      Description

      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)

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                Created:
                Updated: