JDK-8123171 : ColorPicker, ArrayIndexOutOfBoundsException when saving custom color.
  • Type: Bug
  • Component: javafx
  • Sub-Component: scenegraph
  • Affected Version: 8
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2013-07-25
  • Updated: 2015-06-17
  • Resolved: 2013-09-12
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8
8Fixed
Related Reports
Blocks :  
Duplicate :  
Description
jfx8.0 b99, ColorPicker, when trying to save saving custom color, there is ArrayIndexOutOfBoundsException and ColorPicker can not be used.

Exception in thread "JavaFX Application Thread" java.lang.ArrayIndexOutOfBoundsException: 0
	at javafx.scene.layout.GridPane$CompositeSize.setMaxSize(GridPane.java:2478)
	at javafx.scene.layout.GridPane$CompositeSize.access$1200(GridPane.java:2429)
	at javafx.scene.layout.GridPane.computeMaxWidths(GridPane.java:1494)
	at javafx.scene.layout.GridPane.growOrShrinkColumnWidths(GridPane.java:2166)
	at javafx.scene.layout.GridPane.adjustColumnWidths(GridPane.java:2000)
	at javafx.scene.layout.GridPane.layoutChildren(GridPane.java:1674)
	at javafx.scene.Parent.layout(Parent.java:1047)
	at javafx.scene.Parent.layout(Parent.java:1053)
	at javafx.scene.Parent.layout(Parent.java:1053)
	at javafx.scene.Parent.layout(Parent.java:1053)
	at javafx.scene.Group.impl_computeLayoutBounds(Group.java:159)
	at javafx.scene.Node$15.computeBounds(Node.java:3126)
	at javafx.scene.Node$LazyBoundsProperty.get(Node.java:8775)
	at javafx.scene.Node$LazyBoundsProperty.get(Node.java:8745)
	at javafx.scene.Node.getLayoutBounds(Node.java:3141)
	at javafx.stage.PopupWindow.syncWithRootBounds(PopupWindow.java:478)
	at javafx.stage.PopupWindow.access$000(PopupWindow.java:91)
	at javafx.stage.PopupWindow$1.invalidated(PopupWindow.java:106)
	at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:135)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.scene.Node$LazyBoundsProperty.invalidate(Node.java:8785)
	at javafx.scene.Node.impl_layoutBoundsChanged(Node.java:3296)
	at javafx.scene.Node.impl_notifyLayoutBoundsChanged(Node.java:3696)
	at javafx.scene.Node.impl_geomChanged(Node.java:3648)
	at javafx.scene.Parent.childBoundsChanged(Parent.java:1678)
	at javafx.scene.Node.notifyParentOfBoundsChange(Node.java:3718)
	at javafx.scene.Node.transformedBoundsChanged(Node.java:3679)
	at javafx.scene.Node.localBoundsChanged(Node.java:3661)
	at javafx.scene.Node.impl_geomChanged(Node.java:3649)
	at javafx.scene.Parent.childBoundsChanged(Parent.java:1678)
	at javafx.scene.Node.notifyParentOfBoundsChange(Node.java:3718)
	at javafx.scene.Node.transformedBoundsChanged(Node.java:3679)
	at javafx.scene.Node.localBoundsChanged(Node.java:3661)
	at javafx.scene.Node.impl_geomChanged(Node.java:3649)
	at javafx.scene.Parent.childBoundsChanged(Parent.java:1678)
	at javafx.scene.Node.notifyParentOfBoundsChange(Node.java:3718)
	at javafx.scene.Node.transformedBoundsChanged(Node.java:3679)
	at javafx.scene.Node.localBoundsChanged(Node.java:3661)
	at javafx.scene.Node.impl_geomChanged(Node.java:3649)
	at javafx.scene.Parent$1.onChanged(Parent.java:312)
	at com.sun.javafx.collections.TrackableObservableList$1.onChanged(TrackableObservableList.java:48)
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:315)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:72)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
	at java.util.AbstractList.add(AbstractList.java:108)
	at com.sun.javafx.collections.VetoableListDecorator.add(VetoableListDecorator.java:200)
	at javafx.scene.layout.GridPane.add(GridPane.java:972)
	at com.sun.javafx.scene.control.skin.ColorPalette.buildCustomColors(ColorPalette.java:182)
	at com.sun.javafx.scene.control.skin.ColorPalette.access$200(ColorPalette.java:55)
	at com.sun.javafx.scene.control.skin.ColorPalette$1$2.run(ColorPalette.java:107)
	at com.sun.javafx.scene.control.skin.CustomColorDialog$ControlsPane$4.handle(CustomColorDialog.java:660)
	at com.sun.javafx.scene.control.skin.CustomColorDialog$ControlsPane$4.handle(CustomColorDialog.java:657)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.event.Event.fireEvent(Event.java:203)
	at javafx.scene.Node.fireEvent(Node.java:8023)
	at javafx.scene.control.Button.fire(Button.java:184)
	at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:183)
	at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:91)
	at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:84)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:203)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3543)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3374)
	at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3326)
	at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1617)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2394)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:312)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:237)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:354)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:514)
	at com.sun.glass.ui.View.notifyMouse(View.java:877)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39)
	at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:101)
	at java.lang.Thread.run(Thread.java:724)
Comments
Verified fix in 8.0 b108.
23-09-2013

Fixed in rev 30d0ff6962c7
12-09-2013

Yes, because it was reverted by Lisa. See RT-32116. We need to wait for RT-29891 to be resolved to reapply the fix.
16-08-2013

It's reproducible in b102, the error messages is the same.
16-08-2013