inspection toolwindow: wrap RefManager comparator method with read action IDEA-156469
authorDmitry Batkovich <dmitry.batkovich@jetbrains.com>
Thu, 26 May 2016 11:26:09 +0000 (14:26 +0300)
committerDmitry Batkovich <dmitry.batkovich@jetbrains.com>
Thu, 26 May 2016 11:50:55 +0000 (14:50 +0300)
platform/analysis-impl/src/com/intellij/codeInspection/reference/RefManagerImpl.java

index 974f89c288c92e9e8d6e97a952c0833b277b9340..e149f682255efed70c4c7c40d59ac02962b80f71 100644 (file)
@@ -33,6 +33,7 @@ import com.intellij.codeInspection.lang.RefManagerExtension;
 import com.intellij.lang.Language;
 import com.intellij.lang.injection.InjectedLanguageManager;
 import com.intellij.openapi.application.ApplicationManager;
+import com.intellij.openapi.application.ReadAction;
 import com.intellij.openapi.components.PathMacroManager;
 import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.editor.Document;
@@ -357,12 +358,11 @@ public class RefManagerImpl extends RefManager {
     synchronized (myRefTable) {
       answer = new ArrayList<RefElement>(myRefTable.values());
     }
-    ContainerUtil.quickSort(answer, (o1, o2) -> {
+    ContainerUtil.quickSort(answer, (o1, o2) -> ReadAction.compute(() -> {
       VirtualFile v1 = ((RefElementImpl)o1).getVirtualFile();
       VirtualFile v2 = ((RefElementImpl)o2).getVirtualFile();
-
       return (v1 != null ? v1.hashCode() : 0) - (v2 != null ? v2.hashCode() : 0);
-    });
+    }));
 
     return answer;
   }