Details
-
Bug
-
Resolution: Fixed
-
P3
-
8
-
None
Description
Debugging DTL-6587, I notice the following call stack:
InfoPanelControler.sceneGraphDidChange()
-> InfoPanelController.updateController()
-> InfoPanelController.updateController(…)
-> JobManager.push()
This should be reworked : it is not permitted to create and push a Job
inside AbstractPanelController.sceneGraphDidChange() (because
this method is usually invoked as a side effect of another job execution).
java.lang.AssertionError
at com.oracle.javafx.scenebuilder.kit.editor.job.ModifyFxControllerJob.<init>(ModifyFxControllerJob.java:52)
at com.oracle.javafx.scenebuilder.app.info.InfoPanelController.updateController(InfoPanelController.java:260)
at com.oracle.javafx.scenebuilder.app.info.InfoPanelController.updateController(InfoPanelController.java:242)
at com.oracle.javafx.scenebuilder.app.info.InfoPanelController.sceneGraphRevisionDidChange(InfoPanelController.java:119)
at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractPanelController$3.changed(AbstractPanelController.java:213)
at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractPanelController$3.changed(AbstractPanelController.java:209)
at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:347)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
at javafx.beans.property.IntegerPropertyBase.fireValueChangedEvent(IntegerPropertyBase.java:106)
at javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113)
at javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:146)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.refreshSceneGraph(FXOMDocument.java:282)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.endUpdate(FXOMDocument.java:262)
at com.oracle.javafx.scenebuilder.kit.editor.job.v2.CompositeJob.execute(CompositeJob.java:101)
at com.oracle.javafx.scenebuilder.kit.editor.JobManager.executeJob(JobManager.java:181)
at com.oracle.javafx.scenebuilder.kit.editor.JobManager.push(JobManager.java:70)
at com.oracle.javafx.scenebuilder.kit.editor.EditorController.performEditAction(EditorController.java:996)
at com.oracle.javafx.scenebuilder.app.DocumentWindowController.performPaste(DocumentWindowController.java:1443)
at com.oracle.javafx.scenebuilder.app.DocumentWindowController.performEditAction(DocumentWindowController.java:842)
at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController$DocumentEditActionController.perform(MenuBarController.java:1610)
at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController.handleOnActionMenu(MenuBarController.java:1115)
at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController.access$800(MenuBarController.java:90)
at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController$20.handle(MenuBarController.java:1108)
at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController$20.handle(MenuBarController.java:1104)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:204)
at javafx.scene.control.MenuItem.fire(MenuItem.java:462)
at com.sun.javafx.scene.control.GlobalMenuAdapter$5.handle(GlobalMenuAdapter.java:158)
at com.sun.javafx.scene.control.GlobalMenuAdapter$5.handle(GlobalMenuAdapter.java:156)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:204)
at javafx.scene.control.MenuItem.fire(MenuItem.java:462)
at com.sun.javafx.tk.quantum.GlassSystemMenu$6.action(GlassSystemMenu.java:234)
InfoPanelControler.sceneGraphDidChange()
-> InfoPanelController.updateController()
-> InfoPanelController.updateController(…)
-> JobManager.push()
This should be reworked : it is not permitted to create and push a Job
inside AbstractPanelController.sceneGraphDidChange() (because
this method is usually invoked as a side effect of another job execution).
java.lang.AssertionError
at com.oracle.javafx.scenebuilder.kit.editor.job.ModifyFxControllerJob.<init>(ModifyFxControllerJob.java:52)
at com.oracle.javafx.scenebuilder.app.info.InfoPanelController.updateController(InfoPanelController.java:260)
at com.oracle.javafx.scenebuilder.app.info.InfoPanelController.updateController(InfoPanelController.java:242)
at com.oracle.javafx.scenebuilder.app.info.InfoPanelController.sceneGraphRevisionDidChange(InfoPanelController.java:119)
at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractPanelController$3.changed(AbstractPanelController.java:213)
at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractPanelController$3.changed(AbstractPanelController.java:209)
at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:347)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
at javafx.beans.property.IntegerPropertyBase.fireValueChangedEvent(IntegerPropertyBase.java:106)
at javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113)
at javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:146)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.refreshSceneGraph(FXOMDocument.java:282)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.endUpdate(FXOMDocument.java:262)
at com.oracle.javafx.scenebuilder.kit.editor.job.v2.CompositeJob.execute(CompositeJob.java:101)
at com.oracle.javafx.scenebuilder.kit.editor.JobManager.executeJob(JobManager.java:181)
at com.oracle.javafx.scenebuilder.kit.editor.JobManager.push(JobManager.java:70)
at com.oracle.javafx.scenebuilder.kit.editor.EditorController.performEditAction(EditorController.java:996)
at com.oracle.javafx.scenebuilder.app.DocumentWindowController.performPaste(DocumentWindowController.java:1443)
at com.oracle.javafx.scenebuilder.app.DocumentWindowController.performEditAction(DocumentWindowController.java:842)
at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController$DocumentEditActionController.perform(MenuBarController.java:1610)
at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController.handleOnActionMenu(MenuBarController.java:1115)
at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController.access$800(MenuBarController.java:90)
at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController$20.handle(MenuBarController.java:1108)
at com.oracle.javafx.scenebuilder.app.menubar.MenuBarController$20.handle(MenuBarController.java:1104)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:204)
at javafx.scene.control.MenuItem.fire(MenuItem.java:462)
at com.sun.javafx.scene.control.GlobalMenuAdapter$5.handle(GlobalMenuAdapter.java:158)
at com.sun.javafx.scene.control.GlobalMenuAdapter$5.handle(GlobalMenuAdapter.java:156)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:204)
at javafx.scene.control.MenuItem.fire(MenuItem.java:462)
at com.sun.javafx.tk.quantum.GlassSystemMenu$6.action(GlassSystemMenu.java:234)