Ignore ProcessCancelledException in VirtualFileKotlinClass
This commit is contained in:
+8
-8
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.load.kotlin
|
|||||||
|
|
||||||
import com.intellij.ide.highlighter.JavaClassFileType
|
import com.intellij.ide.highlighter.JavaClassFileType
|
||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
|
import com.intellij.openapi.progress.ProcessCanceledException
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import org.jetbrains.kotlin.load.kotlin.KotlinClassFinder.Result.KotlinClass
|
import org.jetbrains.kotlin.load.kotlin.KotlinClassFinder.Result.KotlinClass
|
||||||
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
|
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
|
||||||
@@ -41,8 +42,7 @@ class VirtualFileKotlinClass private constructor(
|
|||||||
override fun getFileContents(): ByteArray {
|
override fun getFileContents(): ByteArray {
|
||||||
try {
|
try {
|
||||||
return file.contentsToByteArray()
|
return file.contentsToByteArray()
|
||||||
}
|
} catch (e: IOException) {
|
||||||
catch (e: IOException) {
|
|
||||||
LOG.error(renderFileReadingErrorMessage(file), e)
|
LOG.error(renderFileReadingErrorMessage(file), e)
|
||||||
throw rethrow(e)
|
throw rethrow(e)
|
||||||
}
|
}
|
||||||
@@ -71,18 +71,18 @@ class VirtualFileKotlinClass private constructor(
|
|||||||
return@time kotlinJvmBinaryClass?.let { KotlinClass(it, byteContent) }
|
return@time kotlinJvmBinaryClass?.let { KotlinClass(it, byteContent) }
|
||||||
?: KotlinClassFinder.Result.ClassFileContent(byteContent)
|
?: KotlinClassFinder.Result.ClassFileContent(byteContent)
|
||||||
}
|
}
|
||||||
}
|
} catch (e: FileNotFoundException) {
|
||||||
catch (e: FileNotFoundException) {
|
|
||||||
// Valid situation. User can delete jar file.
|
// Valid situation. User can delete jar file.
|
||||||
}
|
} catch (e: ProcessCanceledException) {
|
||||||
catch (e: Throwable) {
|
// Valid situation.
|
||||||
LOG.warn(renderFileReadingErrorMessage(file))
|
} catch (e: Throwable) {
|
||||||
|
LOG.warn(renderFileReadingErrorMessage(file), e)
|
||||||
}
|
}
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun renderFileReadingErrorMessage(file: VirtualFile): String =
|
private fun renderFileReadingErrorMessage(file: VirtualFile): String =
|
||||||
"Could not read file: ${file.path}; size in bytes: ${file.length}; file type: ${file.fileType.name}"
|
"Could not read file: ${file.path}; size in bytes: ${file.length}; file type: ${file.fileType.name}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user