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.1
darkmoon_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