From 9f18ad606a2847d6e035b1de5b6e9ce039abdd9c Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Tue, 9 Aug 2016 10:05:35 +0200 Subject: [PATCH] Fix exception on incompatible resolver class - #EA-86599 --- .../kotlin/script/scriptDefinitionFromTemplate.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/script/scriptDefinitionFromTemplate.kt b/compiler/frontend/src/org/jetbrains/kotlin/script/scriptDefinitionFromTemplate.kt index 906d81b3ca3..89b1ad77f0b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/script/scriptDefinitionFromTemplate.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/script/scriptDefinitionFromTemplate.kt @@ -112,9 +112,15 @@ data class KotlinScriptDefinitionFromTemplate(val template: KClass, } .map { it.getProxy(classLoader) } }) - val fileDeps = definitionData.resolver?.resolve(script, environment, ::logScriptDefMessage, previousDependencies) - // TODO: use it as a Future - return fileDeps?.get() + try { + val fileDeps = definitionData.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 + } } private fun getAnnotationEntries(file: TF, project: Project): Iterable = when (file) {