From 7eca13569b2b277116729987d4e104e91c95f01a Mon Sep 17 00:00:00 2001 From: Vladimir Ilmov Date: Mon, 27 Jul 2020 14:20:33 +0200 Subject: [PATCH] (CoroutineDebugger) Enable agent for versions 1.3.8.* Gradle artifact name gets changed from 'kotlinx-coroutines-core' to 'kotlinx-coroutines-core-jvm'. So it should support both. --- .../KotlinGradleCoroutineDebugProjectResolver.kt | 6 +++--- .../kotlin/idea/debugger/coroutine/DebuggerConnection.kt | 6 +++--- 2 files changed, 6 insertions(+), 6 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 b47b05de307..1473605ca65 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 @@ -31,12 +31,12 @@ class KotlinGradleCoroutineDebugProjectResolver : AbstractProjectResolverExtensi 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\-([\d\.]+)\.jar${'$'}/).findAll() + def results = (kotlinxCoroutinesCoreJar.getName() =~ /kotlinx-coroutines-core[a-z\-]+(\d[\w\.\-]+)\.jar${'$'}/).findAll() if (results) { def version = results.first()[1] - if (org.gradle.util.VersionNumber.parse( version ) >= org.gradle.util.VersionNumber.parse('1.3.8')) { + 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") - return } } } diff --git a/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/DebuggerConnection.kt b/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/DebuggerConnection.kt index f067bb77d5e..b314d723d5a 100644 --- a/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/DebuggerConnection.kt +++ b/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/DebuggerConnection.kt @@ -57,12 +57,12 @@ class DebuggerConnection( } private fun determineCoreVersionMode(kotlinxCoroutinesCore: String): CoroutineDebuggerMode { - val regex = Regex(""".+\Wkotlinx-coroutines-core-(.+)?\.jar""") + val regex = Regex(""".+\Wkotlinx-coroutines-core([\-a-z]+)(\d[\w\.\-]+)?\.jar""") val matchResult = regex.matchEntire(kotlinxCoroutinesCore) ?: return CoroutineDebuggerMode.DISABLED val versionToCompareTo = DefaultArtifactVersion("1.3.7-255") - val artifactVersion = DefaultArtifactVersion(matchResult.groupValues[1]) - return if (artifactVersion >= versionToCompareTo) + val artifactVersion = DefaultArtifactVersion(matchResult.groupValues[2]) + return if (artifactVersion > versionToCompareTo) CoroutineDebuggerMode.VERSION_1_3_8_AND_UP else CoroutineDebuggerMode.DISABLED