| Summary: | Replace obsolete BufferedCanvas with standard SWT Buffering | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Lars Vogel <Lars.Vogel> |
| Component: | Compare | Assignee: | Lars Vogel <Lars.Vogel> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | Lars.Vogel, loskutov, nikita, sebastian.ratz |
| Version: | 4.17 | ||
| Target Milestone: | 4.20 M1 | ||
| Hardware: | PC | ||
| OS: | Windows 10 | ||
| See Also: |
https://bugs.eclipse.org/bugs/show_bug.cgi?id=571536 https://git.eclipse.org/r/c/platform/eclipse.platform.team/+/177924 https://git.eclipse.org/c/platform/eclipse.platform.team.git/commit/?id=e534a45caef77d7c4d52cb1473501c0bc2252ea6 https://git.eclipse.org/r/c/platform/eclipse.platform.team/+/178918 https://git.eclipse.org/c/platform/eclipse.platform.team.git/commit/?id=47b7817b4f9c1ea7716cf48e21f7e8648747ca94 |
||
| Whiteboard: | |||
| Bug Depends on: | |||
| Bug Blocks: | 571430, 572036 | ||
|
Description
Lars Vogel
New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.team/+/177924 Gerrit change https://git.eclipse.org/r/c/platform/eclipse.platform.team/+/177924 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.team.git/commit/?id=e534a45caef77d7c4d52cb1473501c0bc2252ea6 This change caused java.lang.NullPointerException: Cannot invoke "org.eclipse.compare.internal.MergeSourceViewer.getSourceViewer()" because "this.fLeft" is null at org.eclipse.compare.contentmergeviewer.TextMergeViewer.paintCenter(TextMergeViewer.java:4267) at org.eclipse.compare.contentmergeviewer.TextMergeViewer$17.paintControl(TextMergeViewer.java:2464) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4209) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1043) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1067) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052) at org.eclipse.swt.widgets.Composite.WM_PRINTCLIENT(Composite.java:1693) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4825) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4930) at org.eclipse.swt.internal.win32.OS.CallWindowProc(Native Method) at org.eclipse.swt.widgets.Button.callWindowProc(Button.java:256) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4861) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4938) at org.eclipse.swt.internal.win32.OS.SetWindowText(Native Method) at org.eclipse.swt.internal.win32.OS.SetWindowText(OS.java:2230) at org.eclipse.swt.widgets.Button._setText(Button.java:209) at org.eclipse.swt.widgets.Button.setText(Button.java:1029) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.createCenterControl(TextMergeViewer.java:2490) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.buildControl(ContentMergeViewer.java:867) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.<init>(TextMergeViewer.java:1626) at org.eclipse.jdt.internal.ui.compare.JavaMergeViewer.<init>(JavaMergeViewer.java:101) at org.eclipse.jdt.internal.ui.compare.JavaContentViewerCreator.createViewer(JavaContentViewerCreator.java:32) at org.eclipse.compare.internal.ViewerDescriptor.createViewer(ViewerDescriptor.java:66) at org.eclipse.compare.internal.CompareUIPlugin.getViewer(CompareUIPlugin.java:1103) at org.eclipse.compare.internal.CompareUIPlugin.findContentViewer(CompareUIPlugin.java:1098) at org.eclipse.compare.CompareUI.findContentViewer(CompareUI.java:338) at org.eclipse.compare.CompareEditorInput.findContentViewer(CompareEditorInput.java:916) at org.eclipse.team.ui.synchronize.SaveableCompareEditorInput.findContentViewer(SaveableCompareEditorInput.java:485) at org.eclipse.compare.internal.CompareContentViewerSwitchingPane.getViewer(CompareContentViewerSwitchingPane.java:99) at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:257) at org.eclipse.compare.internal.CompareContentViewerSwitchingPane.setInput(CompareContentViewerSwitchingPane.java:202) at org.eclipse.compare.CompareEditorInput.internalSetContentPaneInput(CompareEditorInput.java:806) at org.eclipse.compare.CompareEditorInput.lambda$8(CompareEditorInput.java:747) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74) at org.eclipse.compare.CompareEditorInput.feed1(CompareEditorInput.java:742) at org.eclipse.compare.CompareEditorInput.feedInput(CompareEditorInput.java:720) at org.eclipse.compare.CompareEditorInput.createContents(CompareEditorInput.java:543) at org.eclipse.compare.internal.CompareEditor.createCompareControl(CompareEditor.java:448) at org.eclipse.compare.internal.CompareEditor$1.lambda$0(CompareEditor.java:366) at org.eclipse.ui.internal.PendingSyncExec.run(PendingSyncExec.java:68) at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:171) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4001) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3629) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1157) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) at org.eclipse.equinox.launcher.Main.run(Main.java:1461) It seems the paint event can occur earlier than the old doPaint() method. Even before all the controls have been created. New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.team/+/178918 (In reply to Eclipse Genie from comment #4) > New Gerrit change created: > https://git.eclipse.org/r/c/platform/eclipse.platform.team/+/178918 Reopened for the patch above. @Sebastian: could you provide steps to reproduce / stack trace? (In reply to Andrey Loskutov from comment #5) > (In reply to Eclipse Genie from comment #4) > > New Gerrit change created: > > https://git.eclipse.org/r/c/platform/eclipse.platform.team/+/178918 > > Reopened for the patch above. > @Sebastian: could you provide steps to reproduce / stack trace? Right clicking in a .java file -> Compare with -> Previous Revision: Functionally, nothing is broken, but two NPEs are logged in the error view for the early events. It might be a Windows-only thing. (In reply to Sebastian Ratz from comment #6) > > @Sebastian: could you provide steps to reproduce / stack trace? > > Right clicking in a .java file -> Compare with -> Previous Revision: > > Functionally, nothing is broken, but two NPEs are logged in the error view > for the early events. > > It might be a Windows-only thing. OK, thanks. We should merge that for M1. Gerrit change https://git.eclipse.org/r/c/platform/eclipse.platform.team/+/178918 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.team.git/commit/?id=47b7817b4f9c1ea7716cf48e21f7e8648747ca94 |