search for usages in smart mode (EA-65019 - INRE: FileBasedIndexImpl.handleDumbMode)
authorpeter <peter@jetbrains.com>
Wed, 18 Feb 2015 11:39:17 +0000 (12:39 +0100)
committerpeter <peter@jetbrains.com>
Wed, 18 Feb 2015 15:18:41 +0000 (16:18 +0100)
platform/lang-impl/src/com/intellij/find/impl/FindInProjectUtil.java
platform/usageView/src/com/intellij/usages/impl/SearchForUsagesRunnable.java

index 3d064e69cc9e39f6fae975c95f84d1514f86af92..17ca7e4436bf2f1332a9991bbbadc83c91f7df70 100644 (file)
@@ -35,6 +35,7 @@ import com.intellij.openapi.progress.ProgressIndicator;
 import com.intellij.openapi.progress.ProgressManager;
 import com.intellij.openapi.progress.util.ProgressWrapper;
 import com.intellij.openapi.progress.util.TooManyUsagesStatus;
+import com.intellij.openapi.project.DumbService;
 import com.intellij.openapi.project.DumbServiceImpl;
 import com.intellij.openapi.project.IndexNotReadyException;
 import com.intellij.openapi.project.Project;
@@ -209,7 +210,7 @@ public class FindInProjectUtil {
     TooManyUsagesStatus tooManyUsagesStatus = TooManyUsagesStatus.getFrom(indicator);
     do {
       tooManyUsagesStatus.pauseProcessingIfTooManyUsages(); // wait for user out of read action
-      found = ApplicationManager.getApplication().runReadAction(new Computable<Integer>() {
+      found = DumbService.getInstance(psiFile.getProject()).runReadActionInSmartMode(new Computable<Integer>() {
         @Override
         @NotNull
         public Integer compute() {
index 90cbcd7c784ba02ce47815f726631338a2e69c1e..a7e5223c8ed4d47dafa5918f64e29a37bf3b4776 100644 (file)
@@ -30,6 +30,7 @@ import com.intellij.openapi.progress.ProgressIndicator;
 import com.intellij.openapi.progress.ProgressManager;
 import com.intellij.openapi.progress.util.ProgressWrapper;
 import com.intellij.openapi.progress.util.TooManyUsagesStatus;
+import com.intellij.openapi.project.DumbService;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.ui.MessageType;
 import com.intellij.openapi.ui.Messages;
@@ -287,7 +288,7 @@ class SearchForUsagesRunnable implements Runnable {
         final Usage firstUsage = myFirstUsage.get();
         if (firstUsage != null) {
           final UsageViewImpl finalUsageView = usageView;
-          ApplicationManager.getApplication().runReadAction(new Runnable() {
+          DumbService.getInstance(myProject).runReadActionInSmartMode(new Runnable() {
             @Override
             public void run() {
               finalUsageView.appendUsage(firstUsage);