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) {