RFR: 8255248: NullPointerException in JFXPanel due to race condition in HostContainer [v9]
Prasanta Sadhukhan
psadhukhan at openjdk.org
Thu Nov 20 12:05:46 UTC 2025
On Wed, 19 Nov 2025 18:28:43 GMT, Andy Goryachev <angorya at openjdk.org> wrote:
>> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Review comment + OutputRedirect
>
> modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/GlassScene.java line 253:
>
>> 251: final void updateSceneState() {
>> 252: // should only be called on the event thread
>> 253: if (sceneState != null) {
>
> L253, this is the original code, but I found the "event thread" words misleading - too similar to "event dispatcher" thread. Should it be "fx application thread"?
ok
> modules/javafx.swing/src/main/java/javafx/embed/swing/JFXPanel.java line 1116:
>
>> 1114: dnd = new SwingDnD(JFXPanel.this, hScenePeer);
>> 1115: dnd.addNotify();
>> 1116: if (hScenePeer != null) {
>
> this null check can be removed, since the code will bail out on L1106 if `hScenePeer == null`
ok
> tests/system/src/test/java/test/javafx/embed/swing/JFXPanelNPETest.java line 98:
>
>> 96: Thread.sleep(1);
>> 97: Platform.runLater(() -> contentPane.setScene(webView.getScene()));
>> 98: Thread.sleep(1);
>
> discussed offline:
>
> we'll should add some code (`invokeAndWait` + `Util.runAndWait`) here to make sure all the prior events are processed before leaving the try block and doing `OutputRedirect.checkAndRestoreStderr();`
>
> Also, maybe add a `@Timeout` to make sure the test does not hang.
fixed
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1968#discussion_r2545748826
PR Review Comment: https://git.openjdk.org/jfx/pull/1968#discussion_r2545757170
PR Review Comment: https://git.openjdk.org/jfx/pull/1968#discussion_r2545751383
More information about the openjfx-dev
mailing list