buildship icon indicating copy to clipboard operation
buildship copied to clipboard

Cannot run tasks: "Trying to execute the disabled command org.eclipse.buildship.ui.commands.runtasks"

Open loetifuss opened this issue 8 months ago • 1 comments

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

  1. Open Gradle Project in Eclipse Buildship in Java perspective
  2. Open Gradle tasks view and execute "help" task
  3. Open Java EE perspective
  4. 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

loetifuss avatar May 09 '25 06:05 loetifuss

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:

Image

loetifuss avatar May 09 '25 07:05 loetifuss