Error with FilterViewerComparator
👓 What did you see?
Cucumber is not working with the latest versions of eclipse FilterViewerComparator has problems
✅ What did you expect to see?
eclipse.buildId=4.25.0.I20220831-1800 java.version=17.0.4.1 java.vendor=Eclipse Adoptium BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=es_AR Framework arguments: -product org.eclipse.epp.package.jee.product -product org.eclipse.epp.package.jee.product Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product -data file:/C:/Users/Gonzalo/eclipse-workspace/default/ -product org.eclipse.epp.package.jee.product
org.eclipse.equinox.registry Error Thu Nov 10 06:08:47 ART 2022 Unable to create the selected preference page.
java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/debug/ui/FilterViewerComparator at java.base/java.lang.Class.getDeclaredConstructors0(Native Method) at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3373) at java.base/java.lang.Class.getConstructor0(Class.java:3578) at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2754) at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:204) at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:920) at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246) at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63) at org.eclipse.ui.internal.WorkbenchPlugin.lambda$0(WorkbenchPlugin.java:287) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74) at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:285) at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode.createPage(WorkbenchPreferenceNode.java:52) at org.eclipse.jface.preference.PreferenceDialog.createPage(PreferenceDialog.java:1280) at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.createPage(FilteredPreferenceDialog.java:338) at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1166) at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:630) at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:660) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74) at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:657) at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:821) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174) at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:818) at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1191) at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84) at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:284) at org.eclipse.jface.util.OpenStrategy$1.lambda$1(OpenStrategy.java:438) 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:4043) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3648) at org.eclipse.jface.window.Window.runEventLoop(Window.java:823) at org.eclipse.jface.window.Window.open(Window.java:799) at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:66) at org.eclipse.jface.action.Action.runWithEvent(Action.java:474) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580) at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4251) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4068) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645) 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) Caused by: java.lang.ClassNotFoundException: org.eclipse.jdt.internal.debug.ui.FilterViewerComparator cannot be found by cucumber.eclipse.steps.jdt_1.0.0.202107150747 at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:541) at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:536) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416) at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ... 63 more
📦 Which tool/library version are you using?
🔬 How could we reproduce it?
Steps to reproduce the behavior:
- Install '...' version '...'
- Create a file called '....'
- Run command '....'
- See error '....'
📚 Any additional context?
Can anybody helpme? thanks
This text was originally generated from a template, then edited by hand. You can modify the template here.
What cucumber-eclipse version do you use?
Hello
I also have this error when opening the preference page ("Window" > "Preferences", then "Cucumber" > "Java").
I installed Cucumber Eclipse Plugin from the Marketplace (was version 1.0.0.202107150747), then updated to version 2.0.0.202212222015. Error occurred with both versions.
Here is my configuration:
eclipse.buildId=4.26.0.20221201-1200 java.version=17.0.2 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US Framework arguments: -product org.eclipse.epp.package.java.product -product org.eclipse.epp.package.java.product Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product -data file:/C:/Users/xx/eclipse-workspace/ -product org.eclipse.epp.package.java.product
^ same here. Any workarounds found?
No, but as the plugin works well enough for what I need, I didn't dig further sorry.
The FilterViewerComparator class was removed from JDT with their 71f6a09c5d19221df1b4761e8b04775b9ea72098 commit--back in September 2021. This can't be worked around on a more modern release, and is easily triggered by opening the Cucumber/Java preference page. I think the fix for this has already been made. Does the Eclipse Marketplace entry just need to point to a newer release at this point?
There is no new release, if one want the current version of cucumber can be installed from this site:
https://cucumber.github.io/cucumber-eclipse/update-site/main/
Even if, I have no clue how to update marketplace entries...
@laeubi Someone who owns or has edit rights on a Marketplace entry can change the URL and everything else about the entry. Perhaps you could reach out to the person who submitted that one to get yourself added to it?
This was literally years ago (and I was even not at the project that time), how can I find out? I think it would be reasonable to just release 2.x as 1.x is heavily outdated an no one really maintain it...
Beneath the text blurb is a line indicating who submitted it. There's no direct way of contacting them through the Marketplace site, but their name is at least somewhat unique, so perhaps you can use back channels.
I'll send @girijant an email.