| Summary: | [compare editor] replace with > local history... causes NPE | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Modeling] TMF | Reporter: | Knut Wannheden <knut.wannheden> | ||||
| Component: | Xtext | Assignee: | Project Inbox <tmf.xtext-inbox> | ||||
| Status: | CLOSED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | clay, sebastian.zarnekow | ||||
| Version: | 2.0.0 | Flags: | sebastian.zarnekow:
indigo+
|
||||
| Target Milestone: | M7 | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Created attachment 193705 [details]
propsed patch
Looks good to me. Please apply the patch. pushed to master Closing all bugs that were set to RESOLVED before Neon.0 Closing all bugs that were set to RESOLVED before Neon.0 |
The default "Compare with" editors ("Compare with > Local history..." and "Compare with > each other") work as expected, but the "Replace with > Local history") results in an NPE when selecting a revision from the local history to compare against. Note that this bug occurs both with and without the proposed patch to bug 342296. The problem seems to be that in DefaultMergeViewer#createSourceViewer() the call to getSite() returns null as the action opens a separate window (thus no IWorkbenchPartSite). java.lang.NullPointerException at org.eclipse.xtext.ui.compare.DefaultMergeViewer.createSourceViewerConfiguration(DefaultMergeViewer.java:124) at org.eclipse.xtext.ui.compare.DefaultMergeViewer.configureSourceViewer(DefaultMergeViewer.java:113) at org.eclipse.xtext.ui.compare.DefaultMergeViewer.configureTextViewer(DefaultMergeViewer.java:106) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.configureSourceViewer(TextMergeViewer.java:2890) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateContent(TextMergeViewer.java:2843) at org.eclipse.xtext.ui.compare.DefaultMergeViewer.updateContent(DefaultMergeViewer.java:62) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.internalRefresh(ContentMergeViewer.java:783) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.inputChanged(ContentMergeViewer.java:683) at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:274) at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:270) at org.eclipse.compare.internal.CompareContentViewerSwitchingPane.setInput(CompareContentViewerSwitchingPane.java:132) at org.eclipse.compare.CompareEditorInput.internalSetContentPaneInput(CompareEditorInput.java:817) at org.eclipse.compare.CompareEditorInput.access$8(CompareEditorInput.java:815) at org.eclipse.compare.CompareEditorInput$11.run(CompareEditorInput.java:760) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.compare.CompareEditorInput.feed1(CompareEditorInput.java:749) at org.eclipse.compare.CompareEditorInput.access$3(CompareEditorInput.java:748) at org.eclipse.compare.CompareEditorInput$5.open(CompareEditorInput.java:634) at org.eclipse.compare.CompareViewerPane.open(CompareViewerPane.java:325) at org.eclipse.team.ui.PageCompareEditorInput$1.open(PageCompareEditorInput.java:83) at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:842) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.runtime.Platform.run(Platform.java:888) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:840) at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1101) at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1205) at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:264) at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:258) at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:298) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3543) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1250) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1273) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1079) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3441) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3100) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at org.eclipse.compare.internal.CompareDialog.open(CompareDialog.java:195) at org.eclipse.compare.internal.CompareUIPlugin$3.run(CompareUIPlugin.java:1248) at org.eclipse.compare.internal.CompareUIPlugin.syncExec(CompareUIPlugin.java:1258) at org.eclipse.compare.internal.CompareUIPlugin.internalOpenDialog(CompareUIPlugin.java:1251) at org.eclipse.compare.internal.CompareUIPlugin.openCompareDialog(CompareUIPlugin.java:542) at org.eclipse.compare.CompareUI.openCompareDialog(CompareUI.java:211) at org.eclipse.team.internal.ui.history.ReplaceLocalHistory.showCompareInDialog(ReplaceLocalHistory.java:66) at org.eclipse.team.internal.ui.history.ReplaceLocalHistory.access$0(ReplaceLocalHistory.java:40) at org.eclipse.team.internal.ui.history.ReplaceLocalHistory$1.run(ReplaceLocalHistory.java:34) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3405) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3102) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) 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:368) 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:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287)