From df2e8c22a404c75f950ecafe3c5be8dd28580bea Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 7 Aug 2017 13:45:06 +0200 Subject: [PATCH] safe fixes for orphaned runReadActionInSmartMode threads (IDEA-177146, IDEA-176982) --- .../com/intellij/ide/util/gotoByName/ChooseByNameBase.java | 5 ++++- .../groovy/mvc/MvcProjectWithoutLibraryNotificator.java | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java index 86f914059cd1..aca6e3b7fd22 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java @@ -1442,7 +1442,10 @@ public abstract class ChooseByNameBase { @Override public void onCanceled(@NotNull ProgressIndicator indicator) { LOG.assertTrue(myCalcElementsThread == this, myCalcElementsThread); - new CalcElementsThread(myPattern, myCheckboxState, myCallback, myModalityState).scheduleThread(); + + if (!myProject.isDisposed()) { + new CalcElementsThread(myPattern, myCheckboxState, myCallback, myModalityState).scheduleThread(); + } } private void addElementsByPattern(@NotNull String pattern, diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcProjectWithoutLibraryNotificator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcProjectWithoutLibraryNotificator.java index 2f8eaf1397b0..16f57d0084f4 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcProjectWithoutLibraryNotificator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcProjectWithoutLibraryNotificator.java @@ -85,7 +85,9 @@ public class MvcProjectWithoutLibraryNotificator implements StartupActivity, Dum @Override public void onCanceled(@NotNull ProgressIndicator indicator) { - ProgressIndicatorUtils.scheduleWithWriteActionPriority(this); + if (!project.isDisposed()) { + ProgressIndicatorUtils.scheduleWithWriteActionPriority(this); + } } }); }