On Tue, 4 Nov 2025 17:13:25 GMT, Prasanta Sadhukhan <[email protected]> wrote:
>> It is seen that when we close the SwingNode window while we have registered >> a WINDOW_HIDDEN listener, it will cause a NPE >> This is because WINDOW_HIDDEN listener called >> `SwingNode.overrideNativeWindowHandle` to provide a native FX window handle >> to AWT/Swing via JNI code, which gives provision to AWT/Swing code in >> sun/swing/JLightweightFrame.java#overrideNativeWindowHandle to handle the >> window closing >> >> https://github.com/openjdk/jdk/blob/e4aed95cac343f1339b9bc87721561bdc4c2f5ad/src/java.desktop/share/classes/sun/swing/JLightweightFrame.java#L527-L534 >> >> But if window is closed, then the node is removed from scene and >> `SwingNode.disposeLwFrame` is called which nulls "lwFrame" which is the >> handle for JLightweightFrame AWT frame, so when JNI code >> https://github.com/openjdk/jfx/blob/c77c2335856a967907aaacc9546f44943c069add/modules/javafx.graphics/src/main/native-prism/SwingInterop.c#L47 >> >> tries to call JLightweightFrame, it crashes. >> Fix is made to check for `lwFrame `before `overrideNativeWindowHandle ` is >> called inside `SwingNodeHelper.runOnEDT`. >> This is common practice employed inside `SwingNodeHelper.runOnEDT` to check >> for lwFrame to be not null > > Prasanta Sadhukhan has updated the pull request incrementally with one > additional commit since the last revision: > > Test message Marked as reviewed by kcr (Lead). ------------- PR Review: https://git.openjdk.org/jfx/pull/1960#pullrequestreview-3417735725
