JavaSimplePropertyIndex#resolveFieldFromIndexValue: disable for files w/o ID

Fixes EA-215042 - IAE: FileBasedIndex.getFileId

GitOrigin-RevId: f95103dc53ac73a558f93008f1e7d7a2d25370de
This commit is contained in:
Tagir Valeev
2019-10-17 04:32:08 +00:00
committed by intellij-monorepo-bot
parent 21f411bc35
commit 86f2d5bd25
@@ -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