From b22726d4242c39d70ad308484848f5aa208b75fb Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 22 Dec 2014 16:19:07 +0300 Subject: [PATCH] Fix "Index not ready" in structure view --- .../structureView/JetStructureViewElement.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java b/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java index 93e82064267..c7fd2b5d3ff 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/structureView/JetStructureViewElement.java @@ -19,7 +19,10 @@ package org.jetbrains.jet.plugin.structureView; import com.intellij.ide.structureView.StructureViewTreeElement; import com.intellij.ide.util.treeView.smartTree.TreeElement; import com.intellij.navigation.ItemPresentation; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.project.DumbService; import com.intellij.openapi.ui.Queryable; +import com.intellij.openapi.util.Computable; import com.intellij.psi.NavigatablePsiElement; import com.intellij.util.ArrayUtil; import com.intellij.util.Function; @@ -126,12 +129,21 @@ public class JetStructureViewElement implements StructureViewTreeElement, Querya return null; } - JetDeclaration declaration = (JetDeclaration) element; + final JetDeclaration declaration = (JetDeclaration) element; if (declaration instanceof JetClassInitializer) { return null; } - return ResolvePackage.resolveToDescriptor(declaration); + return ApplicationManager.getApplication().runReadAction(new Computable() { + @Override + public DeclarationDescriptor compute() { + if (!DumbService.isDumb(element.getProject())) { + return ResolvePackage.resolveToDescriptor(declaration); + } + + return null; + } + }); } @NotNull