Workaround for IndexNotReadyException from icon provider (EA-118965)
Provider is DumbAware and isn't expected to access indexes.
This commit is contained in:
committed by
Nikolay Krasko
parent
2251440f04
commit
8f566132e4
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea
|
||||
|
||||
import com.intellij.ide.IconProvider
|
||||
import com.intellij.openapi.project.DumbAware
|
||||
import com.intellij.openapi.project.IndexNotReadyException
|
||||
import com.intellij.openapi.util.Iconable
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import com.intellij.psi.PsiElement
|
||||
@@ -52,7 +53,15 @@ class KotlinIconProvider : IconProvider(), DumbAware {
|
||||
val result = psiElement.getBaseIcon()
|
||||
if (flags and Iconable.ICON_FLAG_VISIBILITY > 0 && result != null && (psiElement is KtModifierListOwner && psiElement !is KtClassInitializer)) {
|
||||
val list = psiElement.modifierList
|
||||
return createRowIcon(result.addExpectActualMarker(psiElement), getVisibilityIcon(list))
|
||||
val visibilityIcon = getVisibilityIcon(list)
|
||||
|
||||
val withExpectedActual: Icon = try {
|
||||
result.addExpectActualMarker(psiElement)
|
||||
} catch (indexNotReady: IndexNotReadyException) {
|
||||
result
|
||||
}
|
||||
|
||||
createRowIcon(withExpectedActual, visibilityIcon)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user