void () { 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(); LOG.error(PluginException.createByClass( myAction.getActionUpdateThread() + " action " + StringUtil.getShortName(name) + " (" + name + ") is not allowed. " + "Only EDT actions are allowed.", null, myAction.getClass())); } } AnActionEvent e = AnActionEvent.createFromInputEvent(null, myPlace, myPresentation, getDataContext(), false, true); ActionUtil.performDumbAwareUpdate(myAction, e, false); updateToolTipText(); updateIcon(); }