Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 351763 - NPE when using EMF compare inside dialog
Summary: NPE when using EMF compare inside dialog
Status: CLOSED FIXED
Alias: None
Product: EMFCompare
Classification: Modeling
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: EMF Compare CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-11 18:06 EDT by Benjamin Muskalla CLA
Modified: 2013-04-24 07:26 EDT (History)
1 user (show)

See Also:


Attachments
proposed patch (1.26 KB, patch)
2011-07-11 18:07 EDT, Benjamin Muskalla CLA
laurent.goubet: iplog+
Details | Diff
mylyn/context/zip (2.62 KB, application/octet-stream)
2011-07-11 18:07 EDT, Benjamin Muskalla CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Muskalla CLA 2011-07-11 18:06:39 EDT
When using EMF compare inside a dialog (eg. EGit commit dialog), there is no reference to a workbench part and thus, EMF compare fails with an NPE.

As the site is only used to register the export action (which is not needed in that scenario), I'd just ignore adding the menu manager.


!ENTRY org.eclipse.ui 4 0 2011-07-11 23:54:02.625
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException
	at org.eclipse.emf.compare.ui.viewer.structure.ModelStructureMergeViewer.createToolItems(ModelStructureMergeViewer.java:192)
	at org.eclipse.emf.compare.ui.viewer.structure.ParameterizedStructureMergeViewer.createToolItems(ParameterizedStructureMergeViewer.java:83)
	at org.eclipse.emf.compare.ui.viewer.structure.ModelStructureMergeViewer.<init>(ModelStructureMergeViewer.java:100)
	at org.eclipse.emf.compare.ui.viewer.structure.ParameterizedStructureMergeViewer.<init>(ParameterizedStructureMergeViewer.java:60)
	at org.eclipse.emf.compare.ui.viewer.structure.ParameterizedStructureMergeViewerCreator.createViewer(ParameterizedStructureMergeViewerCreator.java:32)
	at org.eclipse.compare.internal.ViewerDescriptor.createViewer(ViewerDescriptor.java:63)
	at org.eclipse.compare.internal.CompareUIPlugin.getViewer(CompareUIPlugin.java:969)
	at org.eclipse.compare.internal.CompareUIPlugin.findStructureViewer(CompareUIPlugin.java:850)
	at org.eclipse.compare.CompareUI.findStructureViewer(CompareUI.java:312)
	at org.eclipse.compare.CompareEditorInput.findStructureViewer(CompareEditorInput.java:931)
	at org.eclipse.compare.internal.CompareStructureViewerSwitchingPane.getViewer(CompareStructureViewerSwitchingPane.java:84)
	at org.eclipse.compare.CompareEditorInput$10.getViewer(CompareEditorInput.java:715)
	at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:266)
	at org.eclipse.compare.internal.CompareStructureViewerSwitchingPane.setInput(CompareStructureViewerSwitchingPane.java:132)
	at org.eclipse.compare.CompareEditorInput.feedInput(CompareEditorInput.java:747)
	at org.eclipse.compare.CompareEditorInput.createContents(CompareEditorInput.java:555)
	at org.eclipse.compare.internal.CompareDialog.createDialogArea(CompareDialog.java:175)
	at org.eclipse.jface.dialogs.Dialog.createContents(Dialog.java:760)
	at org.eclipse.jface.window.Window.create(Window.java:431)
	at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089)
	at org.eclipse.jface.window.Window.open(Window.java:790)
	at org.eclipse.compare.internal.CompareDialog.open(CompareDialog.java:196)
	at org.eclipse.compare.internal.CompareUIPlugin$3.run(CompareUIPlugin.java:1253)
	at org.eclipse.compare.internal.CompareUIPlugin.syncExec(CompareUIPlugin.java:1263)
	at org.eclipse.compare.internal.CompareUIPlugin.internalOpenDialog(CompareUIPlugin.java:1256)
	at org.eclipse.compare.internal.CompareUIPlugin.openCompareDialog(CompareUIPlugin.java:547)
	at org.eclipse.compare.CompareUI.openCompareDialog(CompareUI.java:211)
	at org.eclipse.egit.ui.internal.CompareUtils.compareHeadWithWorkspace(CompareUtils.java:415)
	at org.eclipse.egit.ui.internal.dialogs.CommitDialog$CommitItemSelectionListener.widgetDefaultSelected(CommitDialog.java:250)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:119)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
	at org.eclipse.jface.window.Window.open(Window.java:801)
	at org.eclipse.egit.ui.internal.commit.CommitUI.commit(CommitUI.java:183)
	at org.eclipse.egit.ui.internal.actions.CommitActionHandler.execute(CommitActionHandler.java:32)
	at org.eclipse.egit.ui.internal.actions.RepositoryAction.run(RepositoryAction.java:86)
	at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	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:344)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Comment 1 Benjamin Muskalla CLA 2011-07-11 18:07:31 EDT
Created attachment 199453 [details]
proposed patch

.
Comment 2 Benjamin Muskalla CLA 2011-07-11 18:07:32 EDT
Created attachment 199454 [details]
mylyn/context/zip
Comment 3 Laurent Goubet CLA 2011-07-19 04:44:22 EDT
Thanks for the patch, this has been contributed to master and will also find its way into the 1.2 maintenance branch.