RFR: 8334593: Adding, removing and then adding a JFXPanel again leads to NullPointerException
Andy Goryachev
angorya at openjdk.org
Fri Jun 28 21:10:23 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
Since this problem straddles two different toolkits, I would suggest to specify a minimum of 2 reviewers.
-------------
PR Comment: https://git.openjdk.org/jfx/pull/1493#issuecomment-2197662517
More information about the openjfx-dev
mailing list