diff --git a/platform/lang-impl/src/com/intellij/ide/actions/GotoClassAction.java b/platform/lang-impl/src/com/intellij/ide/actions/GotoClassAction.java index 3d6b28822df2..77f0e2ede177 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/GotoClassAction.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/GotoClassAction.java @@ -34,22 +34,22 @@ public class GotoClassAction extends SearchEverywhereBaseAction implements DumbA if (project == null) return; boolean dumb = DumbService.isDumb(project); - if (!dumb){ + if (!dumb || isContributorDumbAware(e)) { showInSearchEverywherePopup(ClassSearchEverywhereContributor.class.getSimpleName(), e, true, true); - return; } + else { + invokeGoToFile(project, e); + } + } - ClassSearchEverywhereContributor contributor = new ClassSearchEverywhereContributor(e); + private static boolean isContributorDumbAware(AnActionEvent e) { + ClassSearchEverywhereContributor contributor = null; try { - if (contributor.isDumbAware()) { - showInSearchEverywherePopup(ClassSearchEverywhereContributor.class.getSimpleName(), e, true, true); - } - else { - invokeGoToFile(project, e); - } + contributor = new ClassSearchEverywhereContributor(e); + return contributor.isDumbAware(); } finally { - Disposer.dispose(contributor); + if (contributor != null) Disposer.dispose(contributor); } }