2023 Jun 16 9:44 AM
Hello everyone,
I updated my Eclipse yesterday to version 2023-06 and now I can´t use the compare function anymore.
The ABAP Core Development Tools are at version 3.34.2 and I am manly on SAP System Version 7.56 but the same problem occurs against 7.53
Using the "compare to local revision" just shows an empty screen and using the "compare with Previous Revision/Revision History" shows this error screen:
java.lang.AbstractMethodError: Receiver class com.sap.adt.tools.abapsource.ui.sources.editors.compare.AbapSourceTextMergeViewer$AbapSourceDocumentMergerInput does not define or inherit an implementation of the resolved method 'abstract java.util.Optional createIgnoreWhitespaceContributor(org.eclipse.jface.text.IDocument)' of interface org.eclipse.compare.internal.merge.DocumentMerger$IDocumentMergerInput.
at org.eclipse.compare.internal.merge.DocumentMerger.createIgnoreWhitespaceContributor(DocumentMerger.java:909)
at org.eclipse.compare.internal.merge.DocumentMerger.doDiff(DocumentMerger.java:385)
at com.sap.adt.tools.abapsource.ui.sources.editors.compare.AbapSourceTextMergeViewer.doDiff(AbapSourceTextMergeViewer.java:4044)
at com.sap.adt.tools.abapsource.ui.sources.editors.compare.AbapSourceTextMergeViewer.update(AbapSourceTextMergeViewer.java:6036)
at com.sap.adt.tools.abapsource.ui.sources.editors.compare.AbapSourceTextMergeViewer.updateContent(AbapSourceTextMergeViewer.java:3476)
at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.internalRefresh(ContentMergeViewer.java:793)
at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.inputChanged(ContentMergeViewer.java:701)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:282)
at com.sap.adt.tools.abapsource.ui.sources.editors.compare.AbapSourceTextMergeViewer.setInput(AbapSourceTextMergeViewer.java:4564)
at com.sap.adt.tools.abapsource.ui.sources.editors.compare.AbapViewerCreator$1.setInput(AbapViewerCreator.java:111)
at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:268)
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:67)
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.createPartControl(CompareEditor.java:400)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:158)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPartControl(CompatibilityEditor.java:96)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:365)
at jdk.internal.reflect.GeneratedMethodAccessor94.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:987)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:952)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:141)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:395)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:322)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.lambda$0(PartServiceImpl.java:105)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4803)
at org.eclipse.e4.ui.workbench.swt.DisplayUISynchronize.syncExec(DisplayUISynchronize.java:34)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133)
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElementGen(ElementContainerImpl.java:170)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:188)
at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:660)
at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:624)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:790)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:401)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1264)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3233)
at org.eclipse.ui.internal.WorkbenchPage.lambda$11(WorkbenchPage.java:3123)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3121)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3091)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3082)
at org.eclipse.compare.internal.CompareUIPlugin.lambda$0(CompareUIPlugin.java:566)
at org.eclipse.compare.internal.CompareUIPlugin.syncExec(CompareUIPlugin.java:1405)
at org.eclipse.compare.internal.CompareUIPlugin.internalOpenEditor(CompareUIPlugin.java:576)
at org.eclipse.compare.internal.CompareUIPlugin.openCompareEditor(CompareUIPlugin.java:540)
at org.eclipse.compare.CompareUI.openCompareEditorOnPage(CompareUI.java:174)
at org.eclipse.compare.CompareUI.openCompareEditor(CompareUI.java:143)
at org.eclipse.compare.CompareUI.openCompareEditor(CompareUI.java:127)
at com.sap.adt.tools.abapsource.ui.history.AdtHistoryPage$19$2.run(AdtHistoryPage.java:994)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4047)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3663)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
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:643)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
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:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
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:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
Does anybody else expierence this and might somebody know when this is beeing fixed again?
Seems like its "just" some interface method/s that were added in the latest eclipse patch
2023 Jun 21 1:38 PM
Hello,
I had the same problem after an Eclipse update to 2023-06 (4.28.0). After updating to the ABAP Core Development Tools to version 3.34.3 everything seems to work again.
2023 Jun 16 11:51 AM
Same. Thanks for highlighting it.
Paging the ADT team... thomasfiedler
Replace with Local History fails as well - but at least you can see the differences!
com.sap.adt.tools.abapsource.ui.sources.editors.compare.AbapSourceTextMergeViewer$AbapSourceDocumentMergerInput
does not define or inherit an implementation of the resolved method
'abstract java.util.Optional createIgnoreWhitespaceContributor(org.eclipse.jface.text.IDocument)'
of interface org.eclipse.compare.internal.merge.DocumentMerger$IDocumentMergerInput.
2023 Jun 19 10:31 AM
Hi,
thanks for creating this question.
I experience the same problem with compare after having updated to eclipse 2023-06. My ADT version is 3.34.2 and I work with releases 7.50, 7.52 and 7.56 and it occurs in all cases.
I hope this can be fixed quickly, because I really like the feature and use it very often.
2023 Jun 20 3:42 PM
Hi,
I am facing the same issue with latest version of eclipse 2023-06.
Please let us know what could be the resolution for this.
Thanks
2023 Jun 21 8:25 AM
2023 Jun 21 1:38 PM
Hello,
I had the same problem after an Eclipse update to 2023-06 (4.28.0). After updating to the ABAP Core Development Tools to version 3.34.3 everything seems to work again.
2023 Jun 21 1:44 PM
Hi,
that sounds promising, like it was fixed in the new patch.
Sadly the /latest update site does not pull version 3.34.3 yet for me. I guess I will wait another day or so and switch over to the eclipse 2023-06 update site, if its still not pulling the update
Thanks for the information, that the patch is live
2023 Jun 21 2:07 PM
Hi Tobias,
I didn't get the update right away either.
I tried it in Eclipse Help->Check for Updates. It didn't show me any updates.
I then went another way and tried to set Eclipse to a previous configuration.
Help->About Eclipse IDE->Installation Details->Installation History
There I selected a configuration from 07.06.2023 and reset to this. (Presumably you can also select any older one).
When I then checked for new updates (Help->Check for Updates), I was offered an update of the ADT tools.
After that, the comparison worked again.
2023 Jun 21 2:32 PM
Hi thomasfiedler
I have the same issue with comparison.
Also my update site, linked to https://tools.hana.ondemand.com/latest, is not offering me version 3.34.3.
PS: what would be the right place for ADT issue reporting?
2023 Jun 21 2:48 PM
I could trigger an update of ABAP Core Development Tools to 3.34.3 via Eclipse IDE Installation Details
-> select ABAP Core ...
->click Update Button
Comparison works again
2023 Jun 22 7:31 AM
2023 Jun 23 9:04 AM
2023 Jun 23 4:25 PM