From 00a400dab292cb258bd771e01d4fbe3f69bc3e92 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Fri, 29 Mar 2024 00:29:37 +0400 Subject: [PATCH] drop host action workaround in `ActionButton.update` EA-1114700 - UOE: BackendActionGroup.update GitOrigin-RevId: 66fe8e47be82d667b0e04316b9bdfe631101fccd --- .../openapi/actionSystem/impl/ActionButton.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java index 012fe5d4267f..bd3983e4c240 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java @@ -25,7 +25,6 @@ import com.intellij.ui.codeFloatingToolbar.CodeFloatingToolbar; import com.intellij.ui.popup.PopupFactoryImpl; import com.intellij.ui.popup.PopupState; import com.intellij.ui.popup.WizardPopup; -import com.intellij.util.ReflectionUtil; import com.intellij.util.ui.JBDimension; import com.intellij.util.ui.JBInsets; import com.intellij.util.ui.StartupUiUtil; @@ -317,12 +316,12 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A if (!myUpdateThreadOnDirectUpdateChecked) { myUpdateThreadOnDirectUpdateChecked = true; if (myAction.getActionUpdateThread() == ActionUpdateThread.BGT && - !(myAction instanceof OverridingAction) && // todo workaround BackendDelegatingAction - !AnAction.class.equals(ReflectionUtil.getMethodDeclaringClass(myAction.getClass(), "update", AnActionEvent.class))) { - String name = myAction.getClass().getName(); + !ActionClassMetaData.isDefaultUpdate(myAction)) { + ActionManager actionManager = ActionManager.getInstance(); LOG.error(PluginException.createByClass( - myAction.getActionUpdateThread() + " action " + StringUtil.getShortName(name) + " (" + name + ") is not allowed. " + - "Only EDT actions are allowed.", null, myAction.getClass())); + "BGT operation " + Utils.operationName( + myAction, "update", myPlace, o -> o instanceof AnAction a ? actionManager.getId(a) : null) + + " is not allowed on EDT", null, myAction.getClass())); } } AnActionEvent e = AnActionEvent.createFromInputEvent(null, myPlace, myPresentation, getDataContext(), false, true);