diff --git a/java/java-impl/src/com/intellij/codeInspection/magicConstant/MagicConstantInspection.java b/java/java-impl/src/com/intellij/codeInspection/magicConstant/MagicConstantInspection.java index fbad6d7d2fe1..59ef31f21a4c 100644 --- a/java/java-impl/src/com/intellij/codeInspection/magicConstant/MagicConstantInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/magicConstant/MagicConstantInspection.java @@ -7,6 +7,9 @@ import com.intellij.codeInsight.ExternalAnnotationsManager; import com.intellij.codeInsight.daemon.GroupNames; import com.intellij.codeInspection.*; import com.intellij.ide.util.treeView.AbstractTreeNode; +import com.intellij.openapi.progress.ProgressIndicator; +import com.intellij.openapi.progress.ProgressManager; +import com.intellij.openapi.progress.util.ProgressIndicatorBase; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.SdkModificator; @@ -14,6 +17,7 @@ import com.intellij.openapi.projectRoots.impl.JavaSdkImpl; import com.intellij.openapi.roots.JdkUtils; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Key; +import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; @@ -765,7 +769,18 @@ public class MagicConstantInspection extends AbstractBaseJavaLocalInspectionTool SliceRootNode rootNode = new SliceRootNode(manager.getProject(), new DuplicateMap(), LanguageSlicing.getProvider(argument).createRootUsage(argument, params)); - Collection children = rootNode.getChildren().iterator().next().getChildren(); + ProgressIndicator indicator = new ProgressIndicatorBase(); + indicator.start(); + + Ref> nodesRef = Ref.create(); + try { + ProgressManager.getInstance().executeProcessUnderProgress(() -> nodesRef.set(rootNode.getChildren().iterator().next().getChildren()), indicator); + } + finally { + indicator.stop(); + } + + Collection children = nodesRef.get(); for (AbstractTreeNode child : children) { SliceUsage usage = (SliceUsage)child.getValue(); PsiElement element = usage != null ? usage.getElement() : null;