From 5ec110c33fc1d0f79f8a25d50ed0871930aacd5d Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Mon, 29 Jun 2020 22:46:38 +0300 Subject: [PATCH] *.gradle.kts: catch exceptions during GradleBuildRootManager initialization ^KT-39317 Fixed --- .../scripting/gradle/roots/GradleBuildRootsManager.kt | 11 ++++++++--- .../jetbrains/kotlin/idea/scripting/gradle/utils.kt | 4 ++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt index 6e2890178ae..fb6c3fac87e 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/roots/GradleBuildRootsManager.kt @@ -346,10 +346,15 @@ class GradleBuildRootsManager(val project: Project) : GradleBuildRootsLocator(), lastModifiedFiles: LastModifiedFiles = loadLastModifiedFiles(externalProjectPath) ?: LastModifiedFiles(), dataProvider: (buildRoot: VirtualFile) -> GradleBuildRootData? ): Imported? { - val buildRoot = VfsUtil.findFile(Paths.get(externalProjectPath), true) ?: return null - val data = dataProvider(buildRoot) ?: return null + try { + val buildRoot = VfsUtil.findFile(Paths.get(externalProjectPath), true) ?: return null + val data = dataProvider(buildRoot) ?: return null - return Imported(externalProjectPath, data, lastModifiedFiles) + return Imported(externalProjectPath, data, lastModifiedFiles) + } catch (e: Exception) { + scriptingErrorLog("Cannot load script configurations from file attributes for $externalProjectPath", e) + return null + } } private fun add(newRoot: GradleBuildRoot) { diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt index da20a4cc6cc..fc54325cf85 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt @@ -88,4 +88,8 @@ fun scriptingDebugLog(message: () -> String) { fun scriptingInfoLog(message: String) { logger.info("[KOTLIN_GRADLE_DSL] $message") +} + +fun scriptingErrorLog(message: String, throwable: Throwable?) { + logger.error("[KOTLIN_GRADLE_DSL] $message", throwable) } \ No newline at end of file