From 6da72765103ccc2a5db2b61da3196c087ddacbf8 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Fri, 23 Sep 2016 13:29:28 +0200 Subject: [PATCH] minor: Fix and relax error handling on script template loading --- ...tlinScriptDefinitionFromAnnotatedTemplate.kt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinitionFromAnnotatedTemplate.kt b/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinitionFromAnnotatedTemplate.kt index 185749cdd50..a5294c44643 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinitionFromAnnotatedTemplate.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinitionFromAnnotatedTemplate.kt @@ -100,15 +100,26 @@ open class KotlinScriptDefinitionFromAnnotatedTemplate( } .map { it.getProxy(classLoader) } }) + + fun logClassloadingError(ex: Throwable) { + logScriptDefMessage(ScriptDependenciesResolver.ReportSeverity.WARNING, ex.message ?: "Invalid script template: ${template.qualifiedName}", null) + } + try { val fileDeps = resolver?.resolve(script, environment, ::logScriptDefMessage, previousDependencies) // TODO: use it as a Future return fileDeps?.get() } - catch (ex: ClassCastException) { - logScriptDefMessage(ScriptDependenciesResolver.ReportSeverity.ERROR, ex.message ?: "Invalid script template: ${template.qualifiedName}", null) - return null + catch (ex: ClassNotFoundException) { + logClassloadingError(ex) } + catch (ex: NoClassDefFoundError) { + logClassloadingError(ex) + } + catch (ex: ClassCastException) { + logClassloadingError(ex) + } + return null } private fun getAnnotationEntries(file: TF, project: Project): Iterable = when (file) {