On Mon, 1 Jul 2024 09:16:52 GMT, Prasanta Sadhukhan <psadhuk...@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 > > Prasanta Sadhukhan has updated the pull request incrementally with one > additional commit since the last revision: > > Test fix modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/EmbeddedScene.java line 160: > 158: Platform.runLater(() -> { > 159: QuantumToolkit.runWithRenderLock(() -> { > 160: if (host != null) { I think we need a different solution here, as mentioned in line 58 // TODO: synchronize access to embedder from ET and RT ------------- PR Review Comment: https://git.openjdk.org/jfx/pull/1493#discussion_r1661510943