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

Glass/SWT window throws exception on close

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 8
    • 8
    • javafx
    • None
    • Any OS, SWT port of Glass

      Changeset ec43ca27a88a caused one more problem. When running SWT port of Glass (-Dglass.platform=swt), the following exception is thrown when a window is closed:

           [java] java.lang.IllegalStateException: The window has already been closed
           [java] at com.sun.glass.ui.Window.checkNotClosed(Window.java:284)
           [java] at com.sun.glass.ui.Window.getNativeWindow(Window.java:312)
           [java] at com.sun.prism.PresentableState.update(PresentableState.java:257)
           [java] at com.sun.javafx.tk.quantum.SceneState.update(SceneState.java:84)
           [java] at com.sun.javafx.tk.quantum.GlassScene.updateSceneState(GlassScene.java:264)
           [java] at com.sun.javafx.tk.quantum.GlassScene.releaseSynchronization(GlassScene.java:118)
           [java] at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2318)
           [java] at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:358)
           [java] at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:560)
           [java] at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:540)
           [java] at com.sun.javafx.tk.quantum.QuantumToolkit$15.run(QuantumToolkit.java:425)
           [java] at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
           [java] at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
           [java] at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
           [java] at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
           [java] at com.sun.glass.ui.swt.SWTApplication.runSWTEventLoop(SWTApplication.java:80)
           [java] at com.sun.glass.ui.swt.SWTApplication$2.run(SWTApplication.java:173)
           [java] at java.lang.Thread.run(Thread.java:722)

      It's reproduced only with Glass/SWT. The reason is that SWT doesn't send WindowEvent.CLOSE before WindowEvent.DESTROY, so the window is disposed from SWT, not from JavaFX side. It's unclear if Quantum should be ready to handle this.

            snorthov Steve Northover (Inactive)
            art Artem Ananiev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: