darkmoon_uk
04/12/2022, 9:13 AM1.6.10 to 1.6.20 causes this StackOverflowError when Gradle syncing the project.
Same result on Gradle 7.4.2 and 7.4.1darkmoon_uk
04/12/2022, 9:20 AM1.6.20 issue π€·tapchicoma
04/12/2022, 9:38 AMtapchicoma
04/12/2022, 9:39 AMtapchicoma
04/13/2022, 8:26 AMdarkmoon_uk
04/13/2022, 10:45 AMdarkmoon_uk
04/24/2022, 12:23 PMwithJava() on a JVM multi-platform module.darkmoon_uk
04/24/2022, 12:23 PMwithJava() didn't reproduce it.darkmoon_uk
04/24/2022, 12:24 PMtapchicoma
04/24/2022, 12:45 PMdarkmoon_uk
04/24/2022, 1:45 PMorg.gradle.api.tasks.bundling.AbstractArchiveTask#getArchivePath
It then loops around these methods (in reverse order, as excerpted from stack trace)
calculateValue:103, AbstractMinimalProvider (org.gradle.api.internal.provider)
calculateOwnValue:49, AbstractCombiningProvider (org.gradle.api.internal.provider)
calculateValue:103, AbstractMinimalProvider (org.gradle.api.internal.provider)
calculateValueFrom:128, DefaultProperty (org.gradle.api.internal.provider)
calculateValueFrom:26, DefaultProperty (org.gradle.api.internal.provider)
doCalculateValue:133, AbstractProperty (org.gradle.api.internal.provider)
calculateOwnValue:127, AbstractProperty (org.gradle.api.internal.provider)
I note that these are all within Gradle, but it does not occur on the same version of Gradle when Kotlin 1.6.10 and associated multi-platform plugin are used.
So, perhaps the Multiplatform plugin has changed the way it presents a Jar-name property to Gradle when withJava() is enabled?darkmoon_uk
04/24/2022, 2:04 PMtransform:132, KotlinJvmTarget$disableJavaPluginTasks$1$2 (org.jetbrains.kotlin.gradle.targets.jvm)darkmoon_uk
04/24/2022, 2:27 PMKotlinJvmTarget.kt , 1.6.10 on left, 1.6.21 on right.tapchicoma
04/24/2022, 2:30 PMarchiveFile was deprecated and this was a fix for https://issuetracker.google.com/issues/193558867tapchicoma
04/24/2022, 2:31 PMdarkmoon_uk
04/24/2022, 2:31 PMdarkmoon_uk
04/24/2022, 2:31 PMdarkmoon_uk
04/24/2022, 2:31 PMdarkmoon_uk
04/24/2022, 2:51 PMdarkmoon_uk
04/24/2022, 2:55 PMdarkmoon_uk
04/24/2022, 2:56 PMdarkmoon_uk
04/24/2022, 3:37 PM1.6.2x using `withJava()`:
In 1.6.10 if I query the name of the archive from these tasks I get:
Jar = `StackOverflowRepro-1.0-SNAPSHOT.jar`β
JvmJar = `StackOverflowRepro-jvm-1.0-SNAPSHOT.jar`β
In 1.6.2x if I query the name of the archive from these tasks I get:
Jar = `StackOverflowRepro-jvm-1.0-SNAPSHOT.jar`π« (Shouldn't contain jvm )
JvmJar = `StackOverflowRepro-jvm-1.0-SNAPSHOT.jar`β
...the Jar and JvmJar tasks now have the same name provider. In my project I need the Multiplatform plugin to output the name that the Java plugin would have given. So to do this robustly I assigned it the Java plugin's name provider. But now that JvmJar task has the same name provider as the Jar task, I'm now effectively assigning the provider to itself which caused the StackOverflowError ! π±darkmoon_uk
04/24/2022, 3:38 PM1.6.2x should still retain the Java Jar plugin's name provider for the Jar task.darkmoon_uk
04/24/2022, 3:38 PMdarkmoon_uk
04/24/2022, 4:00 PMdarkmoon_uk
04/24/2022, 4:00 PMJar didn't get the right multiplatform Jar name.darkmoon_uk
04/24/2022, 4:00 PMdarkmoon_uk
04/24/2022, 4:01 PMdarkmoon_uk
04/24/2022, 4:01 PMdarkmoon_uk
04/24/2022, 4:02 PM