Community
Participate
Working Groups
Created attachment 244335 [details] Test case to reproduce Steps to reproduce: * Import the given test case (The Sirius Sample feature has to be installed): * Select the edge between the two EClass * Unfold the "Line Style" menu (in the tabbar) * Set the focus on the diagram * Set the focus back on the edge The line style menu doesn't appear any more. The same issue occurs with the "Align" tabbar action. After having take a look in debug mode, it seems that the org.eclipse.sirius.diagram.ui.tools.internal.editor.tabbar.actions.TabbarRouterMenuManager.dispose() method is called when the edge focus is lost. When we set the focus back on the edge, the method org.eclipse.sirius.diagram.ui.tools.internal.editor.tabbar.actions.TabbarRouterMenuManager.setVisible(boolean) is called on the same TabbarRouterMenuManager instance that has been disposed before. Call the setVisible method on a MenuManager that has been disposed looks strange. This bug seems to have been revealed by this commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=47215779f12a8d69693471db64da5550e19673bc which set the "page" attribute at null within the dispose method.
In addition, the following exception occurs on Juno 3.8 platform: java.lang.NullPointerException at org.eclipse.gmf.runtime.common.ui.action.AbstractActionHandler.<init>(AbstractActionHandler.java:172) at org.eclipse.gmf.runtime.diagram.ui.actions.DiagramAction.<init>(DiagramAction.java:69) at org.eclipse.gmf.runtime.diagram.ui.internal.actions.PropertyChangeAction.<init>(PropertyChangeAction.java:58) at org.eclipse.gmf.runtime.diagram.ui.actions.CheckedPropertyAction.<init>(CheckedPropertyAction.java:44) at org.eclipse.gmf.runtime.diagram.ui.actions.internal.RouterAction.<init>(RouterAction.java:46) at org.eclipse.sirius.diagram.ui.tools.internal.actions.TabbarRouterAction.<init>(TabbarRouterAction.java:44) at org.eclipse.sirius.diagram.ui.tools.internal.actions.TabbarRouterAction.createRectilinearRouterAction(TabbarRouterAction.java:100) at org.eclipse.sirius.diagram.ui.tools.internal.editor.tabbar.actions.TabbarRouterMenuManager.setVisible(TabbarRouterMenuManager.java:71) at org.eclipse.ui.internal.menus.WorkbenchMenuService$ContributionItemUpdater.updateVisibility(WorkbenchMenuService.java:142) at org.eclipse.ui.internal.menus.WorkbenchMenuService$ContributionItemUpdater.propertyChange(WorkbenchMenuService.java:135) at org.eclipse.ui.internal.services.EvaluationAuthority.firePropertyChange(EvaluationAuthority.java:236) at org.eclipse.ui.internal.services.EvaluationAuthority.refsWithSameExpression(EvaluationAuthority.java:157) at org.eclipse.ui.internal.services.EvaluationAuthority.sourceChanged(EvaluationAuthority.java:129) at org.eclipse.ui.internal.services.ExpressionAuthority.sourceChanged(ExpressionAuthority.java:311) at org.eclipse.ui.internal.services.ExpressionAuthority.sourceChanged(ExpressionAuthority.java:302) at org.eclipse.ui.AbstractSourceProvider.fireSourceChanged(AbstractSourceProvider.java:80) at org.eclipse.ui.internal.services.WorkbenchSourceProvider.selectionChanged(WorkbenchSourceProvider.java:177) at org.eclipse.ui.internal.AbstractSelectionService.fireSelection(AbstractSelectionService.java:156) at org.eclipse.ui.internal.AbstractSelectionService$1.selectionChanged(AbstractSelectionService.java:62) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer.flushSelectionEvents(DiagramGraphicalViewer.java:256) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer$1.run(DiagramGraphicalViewer.java:234) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3537) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3189) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:622) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) at org.eclipse.equinox.launcher.Main.run(Main.java:1438) at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
Reproduced on Sirius 1.0 RC3 Marking issue as triaged
See Bug 439338. Some other tabbar menus are impacted: align, select *** This bug has been marked as a duplicate of bug 439338 ***