Cannot run tasks: "Trying to execute the disabled command org.eclipse.buildship.ui.commands.runtasks"
When trying to execute a task from the "Gradle tasks" view from a different perspective than the perspective used when first executing a task Buildship throws an error
"Trying to execute the disabled command org.eclipse.buildship.ui.commands.runtasks"
Stacktrace from Error Log ist:
org.eclipse.buildship.core.internal.GradlePluginsRuntimeException: Cannot execute command 'org.eclipse.buildship.ui.commands.runtasks'. at org.eclipse.buildship.ui.internal.view.task.TreeViewerDoubleClickListener.run(TreeViewerDoubleClickListener.java:67) at org.eclipse.buildship.ui.internal.view.task.TreeViewerDoubleClickListener.doubleClick(TreeViewerDoubleClickListener.java:45) at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:780) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174) at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:777) at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1559) at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1210) at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:272) at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:329) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4273) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4071) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3659) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342) 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:648) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:555) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) 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.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588) at org.eclipse.equinox.launcher.Main.run(Main.java:1459) Caused by: org.eclipse.core.commands.NotEnabledException: Trying to execute the disabled command org.eclipse.buildship.ui.commands.runtasks at org.eclipse.core.commands.Command.executeWithChecks(Command.java:479) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213) at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:389) at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:366) at org.eclipse.buildship.ui.internal.view.task.TreeViewerDoubleClickListener.run(TreeViewerDoubleClickListener.java:65) ... 33 more
Expected Behavior
Gradle tasks should be executable from the "Gradle tasks" view in any perspective
Current Behavior
When trying to execute a task from the "Gradle tasks" view from a different perspective than the perspective used when first executing a task Buildship throws an error (see above)
Context
Trying to execute a Gradle task in Buildship
This behaviour has been reported years ago: https://discuss.gradle.org/t/runtasks-command-not-enabled-in-several-eclipse-perspectives/11381/7
Apparently it should have been fixed with https://bugs.eclipse.org/bugs/show_bug.cgi?id=479243
Steps to Reproduce
- Open Gradle Project in Eclipse Buildship in Java perspective
- Open Gradle tasks view and execute "help" task
- Open Java EE perspective
- Open Gradle tasks view and execute "help" task --> error
Your Environment
eclipse.buildId=4.30.0.20231201-1200 java.version=21.0.4 java.vendor=Oracle Corporation Buildship, 3.1.8.v20231117-1658
I have managed to remote debug into the relevant section in org.eclipse.buildship.ui.internal.view.task.SelectionDependentHandler.
The code expects a "NodeSelection" element in order to set its "enabled" state. However, if I try to run tasks from e.g. the JEE perspective a "TreeSelection" is passed into the setEnabled method thus evaluating its enabled state to "false".
See screenshot for reference: