diff --git a/subprojects/provider/src/main/kotlin/org/gradle/kotlin/dsl/resolver/ResolverEvent.kt b/subprojects/provider/src/main/kotlin/org/gradle/kotlin/dsl/resolver/ResolverEvent.kt index dd0d4e6c0..953bce520 100644 --- a/subprojects/provider/src/main/kotlin/org/gradle/kotlin/dsl/resolver/ResolverEvent.kt +++ b/subprojects/provider/src/main/kotlin/org/gradle/kotlin/dsl/resolver/ResolverEvent.kt @@ -74,7 +74,7 @@ internal data class ResolvedDependenciesWithErrors( val scriptFile: File?, val dependencies: KotlinScriptExternalDependencies, - val exceptions: List + val exceptions: List ) : ResolverEvent() @@ -82,5 +82,5 @@ internal data class ResolvedToPreviousWithErrors( val scriptFile: File?, val dependencies: KotlinScriptExternalDependencies, - val exceptions: List + val exceptions: List ) : ResolverEvent() diff --git a/subprojects/provider/src/main/kotlin/org/gradle/kotlin/dsl/resolver/ResolverEventLogger.kt b/subprojects/provider/src/main/kotlin/org/gradle/kotlin/dsl/resolver/ResolverEventLogger.kt index 40fa41327..027420d81 100644 --- a/subprojects/provider/src/main/kotlin/org/gradle/kotlin/dsl/resolver/ResolverEventLogger.kt +++ b/subprojects/provider/src/main/kotlin/org/gradle/kotlin/dsl/resolver/ResolverEventLogger.kt @@ -206,7 +206,7 @@ object DefaultResolverEventLogger : ResolverEventLogger { } private - fun stringForExceptions(exceptions: List, indentation: Int?) = + fun stringForExceptions(exceptions: List, indentation: Int?) = if (exceptions.isNotEmpty()) indentationStringFor(indentation).let { exceptions.joinToString(prefix = "[\n$it\t", separator = ",\n$it\t", postfix = "]") { exception -> @@ -217,9 +217,15 @@ object DefaultResolverEventLogger : ResolverEventLogger { private fun stringForException(exception: Exception, indentation: Int?) = + stringForException( + StringWriter().also { exception.printStackTrace(PrintWriter(it)) }.toString(), + indentation + ) + + private + fun stringForException(exception: String, indentation: Int?) = indentationStringFor(indentation).let { - StringWriter().also { writer -> exception.printStackTrace(PrintWriter(writer)) }.toString() - .prependIndent(it) + exception.prependIndent(it) } private diff --git a/subprojects/provider/src/test/kotlin/org/gradle/kotlin/dsl/resolver/KotlinBuildScriptModelRepositoryTest.kt b/subprojects/provider/src/test/kotlin/org/gradle/kotlin/dsl/resolver/KotlinBuildScriptModelRepositoryTest.kt index ade3157e0..6cf1abb4b 100644 --- a/subprojects/provider/src/test/kotlin/org/gradle/kotlin/dsl/resolver/KotlinBuildScriptModelRepositoryTest.kt +++ b/subprojects/provider/src/test/kotlin/org/gradle/kotlin/dsl/resolver/KotlinBuildScriptModelRepositoryTest.kt @@ -156,7 +156,7 @@ class KotlinBuildScriptModelRepositoryTest { override val sourcePath: List = emptyList(), override val implicitImports: List = emptyList(), override val editorReports: List = emptyList(), - override val exceptions: List = emptyList(), + override val exceptions: List = emptyList(), override val enclosingScriptProjectDir: File? = null ) : KotlinBuildScriptModel } diff --git a/subprojects/tooling-builders/src/main/kotlin/org/gradle/kotlin/dsl/tooling/builders/KotlinBuildScriptModelBuilder.kt b/subprojects/tooling-builders/src/main/kotlin/org/gradle/kotlin/dsl/tooling/builders/KotlinBuildScriptModelBuilder.kt index aac9d5858..79151d712 100644 --- a/subprojects/tooling-builders/src/main/kotlin/org/gradle/kotlin/dsl/tooling/builders/KotlinBuildScriptModelBuilder.kt +++ b/subprojects/tooling-builders/src/main/kotlin/org/gradle/kotlin/dsl/tooling/builders/KotlinBuildScriptModelBuilder.kt @@ -63,7 +63,9 @@ import org.gradle.kotlin.dsl.typeOf import org.gradle.tooling.provider.model.ToolingModelBuilder import java.io.File +import java.io.PrintWriter import java.io.Serializable +import java.io.StringWriter import java.util.* @@ -78,7 +80,7 @@ data class StandardKotlinBuildScriptModel( override val sourcePath: List, override val implicitImports: List, override val editorReports: List, - override val exceptions: List, + override val exceptions: List, override val enclosingScriptProjectDir: File? ) : KotlinBuildScriptModel, Serializable @@ -349,7 +351,7 @@ data class KotlinScriptTargetModelBuilder( (gradleSource() + classpathSources + accessorsClassPath.src).asFiles, implicitImports, buildEditorReportsFor(classPathModeExceptionCollector.exceptions), - classPathModeExceptionCollector.exceptions, + classPathModeExceptionCollector.exceptions.map(::exceptionToString), enclosingScriptProjectDir ) } @@ -379,6 +381,10 @@ data class KotlinScriptTargetModelBuilder( exceptions, project.isLocationAwareEditorHintsEnabled ) + + private + fun exceptionToString(exception: Exception) = + StringWriter().also { exception.printStackTrace(PrintWriter(it)) }.toString() } diff --git a/subprojects/tooling-models/src/main/kotlin/org/gradle/kotlin/dsl/tooling/models/KotlinBuildScriptModel.kt b/subprojects/tooling-models/src/main/kotlin/org/gradle/kotlin/dsl/tooling/models/KotlinBuildScriptModel.kt index c314a4f66..68405ccf4 100644 --- a/subprojects/tooling-models/src/main/kotlin/org/gradle/kotlin/dsl/tooling/models/KotlinBuildScriptModel.kt +++ b/subprojects/tooling-models/src/main/kotlin/org/gradle/kotlin/dsl/tooling/models/KotlinBuildScriptModel.kt @@ -24,7 +24,7 @@ interface KotlinBuildScriptModel { val sourcePath: List val implicitImports: List val editorReports: List - val exceptions: List + val exceptions: List /** * The directory of the project in which the script was found.