From 11b92bc59767fb7ee787b6b31424853f3dd8d44e Mon Sep 17 00:00:00 2001 From: Ivan Gavrilovic Date: Fri, 9 Apr 2021 15:16:19 +0100 Subject: [PATCH] [Gradle] Fix init script for coroutines Use doFirst instead of beforeTask to add javaagent args for coroutines debugging. --- ...tlinGradleCoroutineDebugProjectResolver.kt | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleCoroutineDebugProjectResolver.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleCoroutineDebugProjectResolver.kt index 7b2b2d7d89f..97cc5e15bf3 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleCoroutineDebugProjectResolver.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleCoroutineDebugProjectResolver.kt @@ -27,16 +27,20 @@ class KotlinGradleCoroutineDebugProjectResolver : AbstractProjectResolverExtensi val script = //language=Gradle """ - gradle.taskGraph.beforeTask { Task task -> - if (task instanceof Test || task instanceof JavaExec) { - def kotlinxCoroutinesCoreJar = task.classpath.find { it.name.startsWith("kotlinx-coroutines-core") } - if (kotlinxCoroutinesCoreJar) { - def results = (kotlinxCoroutinesCoreJar.getName() =~ /kotlinx-coroutines-core(\-jvm)?-(\d[\w\.\-]+)\.jar${'$'}/).findAll() - if (results) { - def version = results.first()[2] - def referenceVersion = org.gradle.util.VersionNumber.parse('1.3.7-255') - if (org.gradle.util.VersionNumber.parse(version) > referenceVersion) { - task.jvmArgs ("-javaagent:${'$'}{kotlinxCoroutinesCoreJar?.absolutePath}", "-ea") + gradle.taskGraph.whenReady { TaskExecutionGraph taskGraph -> + taskGraph.allTasks.each { Task task -> + if (task instanceof Test || task instanceof JavaExec) { + task.doFirst { Task forkedTask -> + def kotlinxCoroutinesCoreJar = forkedTask.classpath.find { it.name.startsWith("kotlinx-coroutines-core") } + if (kotlinxCoroutinesCoreJar) { + def results = (kotlinxCoroutinesCoreJar.getName() =~ /kotlinx-coroutines-core(\-jvm)?-(\d[\w\.\-]+)\.jar${'$'}/).findAll() + if (results) { + def version = results.first()[2] + def referenceVersion = org.gradle.util.VersionNumber.parse('1.3.7-255') + if (org.gradle.util.VersionNumber.parse(version) > referenceVersion) { + forkedTask.jvmArgs ("-javaagent:${'$'}{kotlinxCoroutinesCoreJar?.absolutePath}", "-ea") + } + } } } }