From 86f2d5bd253c75d22ebe0c9549645aef8ca2efa8 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Thu, 17 Oct 2019 11:12:53 +0700 Subject: [PATCH] JavaSimplePropertyIndex#resolveFieldFromIndexValue: disable for files w/o ID Fixes EA-215042 - IAE: FileBasedIndex.getFileId GitOrigin-RevId: f95103dc53ac73a558f93008f1e7d7a2d25370de --- .../src/com/intellij/psi/impl/JavaSimplePropertyIndex.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/JavaSimplePropertyIndex.kt b/java/java-indexing-impl/src/com/intellij/psi/impl/JavaSimplePropertyIndex.kt index fd247d799c3c..5c8bf3c7bb5c 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/JavaSimplePropertyIndex.kt +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/JavaSimplePropertyIndex.kt @@ -5,6 +5,7 @@ import com.intellij.ide.highlighter.JavaFileType import com.intellij.lang.LighterASTNode import com.intellij.lang.java.JavaParserDefinition import com.intellij.openapi.vfs.VirtualFile +import com.intellij.openapi.vfs.VirtualFileWithId import com.intellij.psi.JavaPsiFacade import com.intellij.psi.JavaTokenType import com.intellij.psi.PsiField @@ -40,7 +41,11 @@ fun getFieldOfSetter(method: PsiMethodImpl): PsiField? = resolveFieldFromIndexVa private fun resolveFieldFromIndexValue(method: PsiMethodImpl, isGetter: Boolean): PsiField? { val id = JavaStubImplUtil.getMethodStubIndex(method) if (id != -1) { - val data = FileBasedIndex.getInstance().getFileData(indexId, method.containingFile.virtualFile, method.project) + val virtualFile = method.containingFile.virtualFile + if (virtualFile !is VirtualFileWithId) { + return null + } + val data = FileBasedIndex.getInstance().getFileData(indexId, virtualFile, method.project) return data.values.firstOrNull()?.get(id)?.let { indexValue -> if (isGetter != indexValue.getter) return null val psiClass = method.containingClass