From 0d3f5ef6d92981e2c9237638a21772ee4ae496a4 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 16 Nov 2016 17:48:23 +0100 Subject: [PATCH] tolerate INRE when checking for java property deprecatedness in structure view (EA-91628 - INRE: FileBasedIndexImpl.handleDumbMode) --- .../ide/structureView/impl/java/PropertyGroup.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PropertyGroup.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PropertyGroup.java index f30af8b1a661..cbe863b8933c 100644 --- a/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PropertyGroup.java +++ b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PropertyGroup.java @@ -24,6 +24,7 @@ import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.editor.colors.CodeInsightColors; import com.intellij.openapi.editor.colors.TextAttributesKey; +import com.intellij.openapi.project.IndexNotReadyException; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.IconLoader; @@ -32,6 +33,7 @@ import com.intellij.psi.util.PropertyUtil; import com.intellij.psi.util.PsiUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.ArrayList; @@ -254,11 +256,13 @@ public class PropertyGroup implements Group, ColoredItemPresentation, AccessLeve return isDeprecated(getField()) && isDeprecated(getGetter()) && isDeprecated(getSetter()); } - private static boolean isDeprecated(final PsiElement element) { - if (element == null) return false; - if (!element.isValid()) return false; - if (!(element instanceof PsiDocCommentOwner)) return false; - return ((PsiDocCommentOwner)element).isDeprecated(); + private static boolean isDeprecated(@Nullable final PsiDocCommentOwner element) { + try { + return element != null && element.isValid() && element.isDeprecated(); + } + catch (IndexNotReadyException e) { + return false; + } } public boolean isComplete() {