RFR: 8334593: Adding, removing and then adding a JFXPanel again leads to NullPointerException
Kevin Rushforth
kcr at openjdk.org
Fri Jun 28 15:10:24 UTC 2024
On Fri, 28 Jun 2024 08:49:49 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
> Adding, then removing, and then adding a JFXPanel to the same component in the Swing scene graph leads to a NullPointerException in GlassScene because the sceneState is null.
> Removing JFXPanel calls JFXPanel.removeNotify which calls Window.hide which calls SceneHelper.disposePeer -> Scene.disposePeer -> EmbeddedScene.dispose -> GlassScene.dispose which sets "sceneState" to null...
> so when GlassScene.updateSceneState is called, it results in NPE.
> Fix is to check if `host` (which is usually javafx.embed.swing.JFXPanel$HostContainer for active JFXPanel) has been reset/deleted which is done when `EmbeddedScene.dispose` is called during removeNotify and abstain from updating the scene state
@prsadhuk One more question: Do you know what changed in JavaFX 21 to trigger the NPE?
-------------
PR Comment: https://git.openjdk.org/jfx/pull/1493#issuecomment-2197145846
More information about the openjfx-dev
mailing list