-
Bug
-
Resolution: Fixed
-
P3
-
fx2.0
Here is the simple steps to reproduce the IllegalStateException bug:
1) Run the HelloModality program in runtime/toys/HelloWorld directory.
2) Click the "Create Dialog" button to create the first "owner, none and decorated" window
3) Click the "Create Dialog" button to create the second "owner, none and decorated" window
4) Click the "Dismiss" button in the first created window. This will dismiss both first and second windows you just created.
5) Check the "Application Modal" and click the "Create Dialog" button. Now you should see the following exception throw:
Exception in thread "JavaFX Application Thread" java.lang.IllegalStateException:
The window has already been closed
at com.sun.glass.ui.Window.checkNotClosed(Window.java:202)
at com.sun.glass.ui.Window.setEnabled(Window.java:635)
at com.sun.javafx.tk.quantum.WindowStage.setPlatformEnabled(WindowStage.java:513)
at com.sun.javafx.tk.quantum.WindowStage.windowsSetEnabled(WindowStage.java:536)
at com.sun.javafx.tk.quantum.WindowStage.setVisible(WindowStage.java:347)
at javafx.stage.Window$13.invalidated(Window.java:691)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:85)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:119)
at javafx.stage.Window.setShowing(Window.java:729)
at javafx.stage.Window.show(Window.java:740)
at javafx.stage.Stage.show(Stage.java:104)
at helloworld.HelloModality$1.handle(HelloModality.java:147)
at helloworld.HelloModality$1.handle(HelloModality.java:97)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:60)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:162)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:115)
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:47)
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:5795)
at javafx.scene.control.Button.fire(Button.java:143)
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:169)
at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:269)
at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:262)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:56)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:162)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:115)
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:47)
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:2668)
at javafx.scene.Scene$MouseHandler.process(Scene.java:2489)
at javafx.scene.Scene$MouseHandler.access$1200(Scene.java:2462)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1195)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:1779)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:203)
at com.sun.glass.ui.View.handleMouseEvent(View.java:256)
at com.sun.glass.ui.View.notifyMouse(View.java:516)
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$1$1.run(WinApplication.java:49)
at java.lang.Thread.run(Thread.java:662)
1) Run the HelloModality program in runtime/toys/HelloWorld directory.
2) Click the "Create Dialog" button to create the first "owner, none and decorated" window
3) Click the "Create Dialog" button to create the second "owner, none and decorated" window
4) Click the "Dismiss" button in the first created window. This will dismiss both first and second windows you just created.
5) Check the "Application Modal" and click the "Create Dialog" button. Now you should see the following exception throw:
Exception in thread "JavaFX Application Thread" java.lang.IllegalStateException:
The window has already been closed
at com.sun.glass.ui.Window.checkNotClosed(Window.java:202)
at com.sun.glass.ui.Window.setEnabled(Window.java:635)
at com.sun.javafx.tk.quantum.WindowStage.setPlatformEnabled(WindowStage.java:513)
at com.sun.javafx.tk.quantum.WindowStage.windowsSetEnabled(WindowStage.java:536)
at com.sun.javafx.tk.quantum.WindowStage.setVisible(WindowStage.java:347)
at javafx.stage.Window$13.invalidated(Window.java:691)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:85)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:119)
at javafx.stage.Window.setShowing(Window.java:729)
at javafx.stage.Window.show(Window.java:740)
at javafx.stage.Stage.show(Stage.java:104)
at helloworld.HelloModality$1.handle(HelloModality.java:147)
at helloworld.HelloModality$1.handle(HelloModality.java:97)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:60)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:162)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:115)
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:47)
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:5795)
at javafx.scene.control.Button.fire(Button.java:143)
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:169)
at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:269)
at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:262)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:56)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:162)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:115)
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:47)
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:2668)
at javafx.scene.Scene$MouseHandler.process(Scene.java:2489)
at javafx.scene.Scene$MouseHandler.access$1200(Scene.java:2462)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1195)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:1779)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:203)
at com.sun.glass.ui.View.handleMouseEvent(View.java:256)
at com.sun.glass.ui.View.notifyMouse(View.java:516)
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$1$1.run(WinApplication.java:49)
at java.lang.Thread.run(Thread.java:662)