Suppress FNFE in .kotlin_metadata index
Similarly to VirtualFileKotlinClass.create. This could happen for example when some files are removed from kotlin-stdlib-common
This commit is contained in:
+9
-1
@@ -24,11 +24,19 @@ import com.intellij.util.indexing.ID
|
|||||||
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder
|
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import java.io.FileNotFoundException
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
|
||||||
class IDEVirtualFileFinder(private val scope: GlobalSearchScope) : VirtualFileFinder() {
|
class IDEVirtualFileFinder(private val scope: GlobalSearchScope) : VirtualFileFinder() {
|
||||||
override fun findMetadata(classId: ClassId): InputStream? {
|
override fun findMetadata(classId: ClassId): InputStream? {
|
||||||
return findVirtualFileWithHeader(classId, KotlinMetadataFileIndex.KEY)?.inputStream
|
val file = findVirtualFileWithHeader(classId, KotlinMetadataFileIndex.KEY) ?: return null
|
||||||
|
|
||||||
|
return try {
|
||||||
|
file.inputStream
|
||||||
|
}
|
||||||
|
catch (e: FileNotFoundException) {
|
||||||
|
null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun hasMetadataPackage(fqName: FqName): Boolean = KotlinMetadataFilePackageIndex.hasSomethingInPackage(fqName, scope)
|
override fun hasMetadataPackage(fqName: FqName): Boolean = KotlinMetadataFilePackageIndex.hasSomethingInPackage(fqName, scope)
|
||||||
|
|||||||
Reference in New Issue
Block a user