Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 342659 - [compare editor] replace with > local history... causes NPE
Summary: [compare editor] replace with > local history... causes NPE
Status: CLOSED FIXED
Alias: None
Product: TMF
Classification: Modeling
Component: Xtext (show other bugs)
Version: 2.0.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: M7   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-13 02:43 EDT by Knut Wannheden CLA
Modified: 2017-09-19 17:56 EDT (History)
2 users (show)

See Also:
sebastian.zarnekow: indigo+


Attachments
propsed patch (6.45 KB, patch)
2011-04-20 10:28 EDT, Michael Clay CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Knut Wannheden CLA 2011-04-13 02:43:23 EDT
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)
Comment 1 Michael Clay CLA 2011-04-20 10:28:48 EDT
Created attachment 193705 [details]
propsed patch
Comment 2 Sebastian Zarnekow CLA 2011-04-20 10:44:40 EDT
Looks good to me. Please apply the patch.
Comment 3 Michael Clay CLA 2011-04-20 11:49:46 EDT
pushed to master
Comment 4 Karsten Thoms CLA 2017-09-19 17:44:50 EDT
Closing all bugs that were set to RESOLVED before Neon.0
Comment 5 Karsten Thoms CLA 2017-09-19 17:56:03 EDT
Closing all bugs that were set to RESOLVED before Neon.0