JDK-8115472 : Ensemble throws RuntimeException: WindowStage.setIconified failed
  • Type: Bug
  • Component: javafx
  • Sub-Component: graphics
  • Affected Version: fx2.1
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2012-02-28
  • Updated: 2015-06-17
  • Resolved: 2012-03-01
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 7
7u6Fixed
Related Reports
Relates :  
Description
In noticed this issue while testing JavaFX on Linux. This issue happens on both pipes, ie. j2d or es2. The steps to reproduce this bug is as followed:

1) Launch Ensemble
2) Select Stage->Advanced Stage
3) Click on the "Create a Stage" button
4) Click on the "minimalise me" button in the newly created Stage
5) Click on the "X" to exit Ensemble. You should now see the following stack trace:

JavaFX Application Thread uncaught: java.lang.RuntimeException
java.lang.RuntimeException: WindowStage.setIconified failed
	at com.sun.javafx.tk.quantum.WindowStage.setIconified(WindowStage.java:442)
	at javafx.stage.Stage$6.invalidated(Stage.java:559)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:129)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:163)
	at javafx.stage.Stage.setIconified(Stage.java:541)
	at ensemble.samples.scenegraph.stage.AdvancedStageSample$1$4.handle(AdvancedStageSample.java:145)
	at ensemble.samples.scenegraph.stage.AdvancedStageSample$1$4.handle(AdvancedStageSample.java:143)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:28)
	at javafx.event.Event.fireEvent(Event.java:171)
	at javafx.scene.Node.fireEvent(Node.java:5975)
	at javafx.scene.control.Button.fire(Button.java:179)
	at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:189)
	at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:336)
	at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:329)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:64)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)
	at javafx.event.Event.fireEvent(Event.java:171)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:2897)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:2691)
	at javafx.scene.Scene$MouseHandler.access$1300(Scene.java:2657)
	at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1281)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:1915)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:215)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:493)
	at com.sun.glass.ui.View.notifyMouse(View.java:871)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication$2$1.run(GtkApplication.java:79)
	at java.lang.Thread.run(Thread.java:662)


Comments
OK, thanks.
01-03-2012

RT-19320 is partially fixed, and this issue is one of the issues that has been already fixed. I'll remove the dependency, as it's incorrect.
01-03-2012

In that case, shouldn't it be marked as Resolved/Duplicate? Marking as Resolved/Fixed is misleading since RT-19320 isn't yet fixed.
01-03-2012

Will be fixed as part of RT-19320
01-03-2012

The issue is related to RT-19320.
29-02-2012

In Glass GTK the minimize() is implemented as: @Override protected boolean _minimize(long ptr, boolean minimize) { minimizeImpl(ptr, minimize); syncWithXServer(ptr); syncWithWindowManager(ptr); return isMinimized(); } Note that on X11 the state of a window is updated asynchronously. The minimizeImpl() request may take some time to get applied to the window on the native level, and as a result the isMinimized() may return an old state. This is how X11 works in general. There's an effort to address synchronization issues in Glass GTK (RT-19320), however, it's unclear whether this can be fixed reasonably. Since the exception is actually thrown from Quantum code, I'm reassigning this issue to Graphics to evaluate whether they want to close it as a duplicate of RT-19320, or, alternatively, to not throw an exception in the WindowStage.setIconified() method at all.
29-02-2012