From 05de376fc357bd53def25b293d2d08beae707502 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 3 Mar 2015 19:21:40 +0300 Subject: [PATCH] Don't spam warning when file was removed --- .../kotlin/load/kotlin/VirtualFileKotlinClass.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/VirtualFileKotlinClass.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/VirtualFileKotlinClass.kt index fee43349908..1bd817427e9 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/VirtualFileKotlinClass.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/VirtualFileKotlinClass.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader import org.jetbrains.kotlin.utils.* import java.io.IOException +import java.io.FileNotFoundException public class VirtualFileKotlinClass private( public val file: VirtualFile, @@ -52,19 +53,24 @@ public class VirtualFileKotlinClass private( deprecated("Use KotlinBinaryClassCache") fun create(file: VirtualFile): VirtualFileKotlinClass? { assert(file.getFileType() == JavaClassFileType.INSTANCE) { "Trying to read binary data from a non-class file $file" } - val byteContent = file.contentsToByteArray() - if (byteContent.isEmpty()) return null try { + val byteContent = file.contentsToByteArray() + if (byteContent.isEmpty()) return null + return FileBasedKotlinClass.create(byteContent) { name, header, innerClasses -> VirtualFileKotlinClass(file, name, header, innerClasses) } } + catch (e: FileNotFoundException) { + // Valid situation. User can delete jar file. + } catch (e: Throwable) { LOG.warn(renderFileReadingErrorMessage(file)) - return null } + + return null } private fun renderFileReadingErrorMessage(file: VirtualFile): String =