diff --git a/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java b/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java index 2aea85777a30..731239970fc7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/DumbServiceImpl.java @@ -411,25 +411,16 @@ public class DumbServiceImpl extends DumbService implements Disposable, Modifica @Override public void smartInvokeLater(@NotNull final Runnable runnable) { - ApplicationManager.getApplication().invokeLater(new Runnable() { - @Override - public void run() { - runWhenSmart(runnable); - } - - @Override - public String toString() { - return runnable.toString(); - } - }, myProject.getDisposed()); + smartInvokeLater(runnable, ModalityState.defaultModalityState()); } @Override public void smartInvokeLater(@NotNull final Runnable runnable, @NotNull ModalityState modalityState) { - ApplicationManager.getApplication().invokeLater(new Runnable() { - @Override - public void run() { - runWhenSmart(runnable); + ApplicationManager.getApplication().invokeLater(() -> { + if (isDumb()) { + runWhenSmart(() -> smartInvokeLater(runnable, modalityState)); + } else { + runnable.run(); } }, modalityState, myProject.getDisposed()); }