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

node.impl_processCSS can lead to infinite loop

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: P3 P3
    • 7-pool
    • fx2.0
    • javafx
    • Windows, Mac

      In the VT, in order to force CSS Engine to bootsrap, we are calling this internal method. We do understand that it is not a supported API.
      In some cases, diffcult to isolate, we are entering into an infinite loop and a bunch of stacks are displayed (some ClassCast exceptions.).

      I am copying a subset of the traces logged when we do enter the infinite loop.

      Calling impl_reapplyCSS in the next tick (thanks to a timeline keyframe), we do not enter the inifinite loop.
       

      WARNING: com.sun.javafx.css.StyleHelper lookup caught:
      java.lang.ClassCastException: java.lang.String cannot be cast to javafx.scene.paint.Paint
              at com.sun.javafx.css.converters.PaintConverter$SequenceConverter.convert(PaintConverter.java:71)
              at com.sun.javafx.css.converters.PaintConverter$SequenceConverter.convert(PaintConverter.java:56)
              at com.sun.javafx.css.Value.convert(Value.java:243)
              at com.sun.javafx.css.StyleHelper.lookup(StyleHelper.java:899)
              at com.sun.javafx.css.StyleHelper.lookup(StyleHelper.java:854)
              at com.sun.javafx.css.StyleHelper.transitionToState(StyleHelper.java:686)
              at javafx.scene.Node.impl_processCSS(Node.java:6194)
              at javafx.scene.Parent.impl_processCSS(Parent.java:965)
              at javafx.scene.Parent.impl_processCSS(Parent.java:972)
              at javafx.scene.control.Control.impl_processCSS(Control.java:1002)
              at com.oracle.javafx.authoring.Deprecation.processCSS(Deprecation.java:98)
              at com.oracle.javafx.authoring.css.CssUtils.resetStyle(CssUtils.java:472)
              at com.oracle.javafx.authoring.css.CssUtils.resetCssState(CssUtils.java:457)
              at com.oracle.javafx.authoring.css.CssUtils.applyCss(CssUtils.java:541)
              at com.oracle.javafx.authoring.runtime.ComponentState.applyStateValuesRecursively(ComponentState.java:171)
              at com.oracle.javafx.authoring.runtime.ComponentState.doApplyStateValuesRecursively(ComponentState.java:183)
              at com.oracle.javafx.authoring.runtime.ComponentState.applyStateValuesRecursively(ComponentState.java:170)
              at com.oracle.javafx.authoring.runtime.ComponentState.doApplyStateValuesRecursively(ComponentState.java:183)
              at com.oracle.javafx.authoring.runtime.ComponentState.applyStateValuesRecursively(ComponentState.java:170)
              at com.oracle.javafx.authoring.runtime.ComponentState.reset(ComponentState.java:87)
              at com.oracle.javafx.authoring.runtime.ElementStates.refreshContained(ElementStates.java:700)
              at com.oracle.javafx.authoring.Project.refreshCss(Project.java:303)
              at com.oracle.javafx.authoring.Project.checkForUpdates(Project.java:294)
              at com.oracle.javafx.authoring.FocusContext$2.invalidated(FocusContext.java:165)
              at com.sun.javafx.binding.ExpressionHelper$MultipleInvalidation.fireValueChangedEvent(ExpressionHelper.java:301)
              at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:64)
              at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:156)
              at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.access$100(ReadOnlyBooleanWrapper.java:126)
              at javafx.beans.property.ReadOnlyBooleanWrapper.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:122)
              at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:89)
              at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:122)
              at javafx.stage.Window.setFocused(Window.java:331)
              at com.sun.javafx.stage.WindowPeerListener.changedFocused(WindowPeerListener.java:67)
              at com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:47)
              at com.sun.glass.ui.Window.handleWindowEvent(Window.java:889)
              at com.sun.glass.ui.Window.notifyFocus(Window.java:868)
              at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
              at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
              at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:62)
              at java.lang.Thread.run(Thread.java:662)

      WARNING: com.sun.javafx.css.StyleHelper lookup styleable = 'artificial' StyleableProperty {property: -fx-background-color, converter: Paint.SequenceConverter, initialValue: <Value>
        <value values="1">
          <Value>
            <value>Color[red=0,green=0,blue=0,opacity=1.0]</value>
            <converter>null</converter>
          </Value>
        </value>
        <converter>Paint.SequenceConverter</converter>
      </Value>
      }
      WARNING: com.sun.javafx.css.StyleHelper lookup resolved = <Value>
        <value values="2">
          <Value lookup="true">
            <value>-fx-box-border</value>
            <converter>null</converter>
          </Value>
          <Value lookup="true">
            <value>-fx-control-inner-background</value>
            <converter>null</converter>
          </Value>
        </value>
        <converter>Paint.SequenceConverter</converter>
      </Value>

      WARNING: com.sun.javafx.css.StyleHelper lookup node = TreeViewSkin[id=tree, styleClass=tree-view]
      WARNING: com.sun.javafx.css.StyleHelper lookup caught:
      java.lang.ClassCastException: java.lang.String cannot be cast to com.sun.javafx.css.Value
              at com.sun.javafx.css.converters.PaintConverter.convert(PaintConverter.java:45)
              at com.sun.javafx.css.converters.PaintConverter.convert(PaintConverter.java:21)
              at com.sun.javafx.css.StyleHelper.lookup(StyleHelper.java:901)
              at com.sun.javafx.css.StyleHelper.transitionToState(StyleHelper.java:686)
              at javafx.scene.Node.impl_processCSS(Node.java:6194)
              at javafx.scene.Parent.impl_processCSS(Parent.java:965)
              at javafx.scene.control.Control.impl_processCSS(Control.java:1002)
              at javafx.scene.Parent.impl_processCSS(Parent.java:972)
              at javafx.scene.Parent.impl_processCSS(Parent.java:972)
              at javafx.scene.Parent.impl_processCSS(Parent.java:972)
              at javafx.scene.Parent.impl_processCSS(Parent.java:972)
              at javafx.scene.Parent.impl_processCSS(Parent.java:972)
              at javafx.scene.Parent.impl_processCSS(Parent.java:972)
              at javafx.scene.control.Control.impl_processCSS(Control.java:1002)
              at com.oracle.javafx.authoring.Deprecation.processCSS(Deprecation.java:98)
              at com.oracle.javafx.authoring.css.CssUtils.resetStyle(CssUtils.java:472)
              at com.oracle.javafx.authoring.css.CssUtils.resetCssState(CssUtils.java:457)
              at com.oracle.javafx.authoring.css.CssUtils.applyCss(CssUtils.java:541)
              at com.oracle.javafx.authoring.runtime.ComponentState.applyStateValuesRecursively(ComponentState.java:171)
              at com.oracle.javafx.authoring.runtime.ComponentState.doApplyStateValuesRecursively(ComponentState.java:183)
              at com.oracle.javafx.authoring.runtime.ComponentState.applyStateValuesRecursively(ComponentState.java:170)
              at com.oracle.javafx.authoring.runtime.ComponentState.doApplyStateValuesRecursively(ComponentState.java:183)
              at com.oracle.javafx.authoring.runtime.ComponentState.applyStateValuesRecursively(ComponentState.java:170)
              at com.oracle.javafx.authoring.runtime.ComponentState.reset(ComponentState.java:87)
              at com.oracle.javafx.authoring.runtime.ElementStates.refreshContained(ElementStates.java:700)
              at com.oracle.javafx.authoring.Project.refreshCss(Project.java:303)
              at com.oracle.javafx.authoring.Project.checkForUpdates(Project.java:294)
              at com.oracle.javafx.authoring.FocusContext$2.invalidated(FocusContext.java:165)
              at com.sun.javafx.binding.ExpressionHelper$MultipleInvalidation.fireValueChangedEvent(ExpressionHelper.java:301)
              at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:64)
              at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:156)
              at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.access$100(ReadOnlyBooleanWrapper.java:126)
              at javafx.beans.property.ReadOnlyBooleanWrapper.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:122)
              at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:89)
              at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:122)
              at javafx.stage.Window.setFocused(Window.java:331)
              at com.sun.javafx.stage.WindowPeerListener.changedFocused(WindowPeerListener.java:67)
              at com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:47)
              at com.sun.glass.ui.Window.handleWindowEvent(Window.java:889)
              at com.sun.glass.ui.Window.notifyFocus(Window.java:868)
              at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
              at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
              at com.sun.glass.ui.win.WinApplication$2$1.run(WinApplication.java:62)
              at java.lang.Thread.run(Thread.java:662)

      WARNING: com.sun.javafx.css.StyleHelper lookup styleable = StyleableProperty {owningClass: javafx.scene.control.Labeled, fieldName: textFill, property: -fx-text-fill, converter: PaintConverter, initialValue: 'black', inherits: true, subProperties: []}
      WARNING: com.sun.javafx.css.StyleHelper lookup resolved = <Value lookup="true">

            dgrieve David Grieve
            jfdenise Jean-Francois Denise (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: