There's the possibility that impl_processCSS is called before the creation of the DefaultSkin is finished (eg when using a ComboBox) leading to a situation where you have 2 active Skins for a Control
The stack looks like this in this situation:
> ComboBoxListViewSkin<T>(ComboBoxBaseSkin<T>).<init>(ComboBoxBase<T>, ComboBoxBaseBehavior<T>) line: 57
> ComboBoxListViewSkin<T>(ComboBoxPopupControl<T>).<init>(ComboBoxBase<T>, ComboBoxBaseBehavior<T>) line: 61
> ComboBoxListViewSkin<T>.<init>(ComboBox<T>) line: 113
> ComboBox<T>.createDefaultSkin() line: 420
> ComboBox<T>(Control).impl_processCSS(WritableValue<Boolean>) line: 859
> FSimpleSelectControl<T>(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> FSimpleSelectControl<T>(Control).impl_processCSS(WritableValue<Boolean>) line: 855
> FlexibleGridLayoutPane$LayoutItem(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> GridPane(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> FlexibleGridLayoutPane(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> VBox(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> ScrollPaneSkin$4(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> ScrollPaneSkin$3(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> ScrollPane(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> ScrollPane(Control).impl_processCSS(WritableValue<Boolean>) line: 855
> ScrollPane(Node).processCSS() line: 9056
> SimpleListCell<T>(Node).applyCss() line: 9153
> ComboBoxListViewSkin<T>(ComboBoxBaseSkin<T>).updateDisplayArea() line: 150
> ComboBoxListViewSkin<T>.updateButtonCell() line: 406 [local variables unavailable]
> ComboBoxListViewSkin<T>.<init>(ComboBox<T>) line: 134
> ComboBox<T>.createDefaultSkin() line: 420
> ComboBox<T>(Control).impl_processCSS(WritableValue<Boolean>) line: 859
> FSimpleSelectControl<T>(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> FSimpleSelectControl<T>(Control).impl_processCSS(WritableValue<Boolean>) line: 862
> FlexibleGridLayoutPane$LayoutItem(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> GridPane(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> FlexibleGridLayoutPane(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> VBox(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
A possible fix would be to remember that we are currently creating the DefaultSkin and skip creating the default-skin
The stack looks like this in this situation:
> ComboBoxListViewSkin<T>(ComboBoxBaseSkin<T>).<init>(ComboBoxBase<T>, ComboBoxBaseBehavior<T>) line: 57
> ComboBoxListViewSkin<T>(ComboBoxPopupControl<T>).<init>(ComboBoxBase<T>, ComboBoxBaseBehavior<T>) line: 61
> ComboBoxListViewSkin<T>.<init>(ComboBox<T>) line: 113
> ComboBox<T>.createDefaultSkin() line: 420
> ComboBox<T>(Control).impl_processCSS(WritableValue<Boolean>) line: 859
> FSimpleSelectControl<T>(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> FSimpleSelectControl<T>(Control).impl_processCSS(WritableValue<Boolean>) line: 855
> FlexibleGridLayoutPane$LayoutItem(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> GridPane(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> FlexibleGridLayoutPane(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> VBox(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> ScrollPaneSkin$4(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> ScrollPaneSkin$3(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> ScrollPane(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> ScrollPane(Control).impl_processCSS(WritableValue<Boolean>) line: 855
> ScrollPane(Node).processCSS() line: 9056
> SimpleListCell<T>(Node).applyCss() line: 9153
> ComboBoxListViewSkin<T>(ComboBoxBaseSkin<T>).updateDisplayArea() line: 150
> ComboBoxListViewSkin<T>.updateButtonCell() line: 406 [local variables unavailable]
> ComboBoxListViewSkin<T>.<init>(ComboBox<T>) line: 134
> ComboBox<T>.createDefaultSkin() line: 420
> ComboBox<T>(Control).impl_processCSS(WritableValue<Boolean>) line: 859
> FSimpleSelectControl<T>(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> FSimpleSelectControl<T>(Control).impl_processCSS(WritableValue<Boolean>) line: 862
> FlexibleGridLayoutPane$LayoutItem(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> GridPane(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> FlexibleGridLayoutPane(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
> VBox(Parent).impl_processCSS(WritableValue<Boolean>) line: 1280
A possible fix would be to remember that we are currently creating the DefaultSkin and skip creating the default-skin