Bug 437699 - "line style" tabbar action disappear after having used it
Summary: "line style" tabbar action disappear after having used it
Status: CLOSED DUPLICATE of bug 439338
Alias: None
Product: Sirius
Classification: Modeling
Component: Diagram (show other bugs)
Version: 1.0.0   Edit
Hardware: All All
: P3 major (vote)
Target Milestone: 1.0.1   Edit
Assignee: Maxime Porhel CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2014-06-18 11:13 EDT by Florian Barbin CLA
Modified: 2014-07-24 11:17 EDT (History)
2 users (show)

See Also:


Attachments
Test case to reproduce (2.48 KB, application/zip)
2014-06-18 11:13 EDT, Florian Barbin CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Florian Barbin CLA 2014-06-18 11:13:18 EDT
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.
Comment 1 Florian Barbin CLA 2014-06-18 11:41:50 EDT
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)
Comment 2 Alex Lagarde CLA 2014-06-19 05:51:23 EDT
Reproduced on Sirius 1.0 RC3
Marking issue as triaged
Comment 3 Maxime Porhel CLA 2014-07-10 10:17:40 EDT
See Bug 439338. 

Some other tabbar menus are impacted: align, select

*** This bug has been marked as a duplicate of bug 439338 ***