Hi experts, need some help here. I'm upgrading our...
# community-support
s
Hi experts, need some help here. I'm upgrading our build system to use kotlin 2.0.0. Currently my gradle version is 8.10. We have a gradle plugin tested successfully on Kotlin 1.9.24 but with k2, the test fails with the following error:
Copy code
* Exception is:
org.gradle.api.GradleException: Could not load the value of field `__buildFusServiceProperty__` of `org.jetbrains.kotlin.gradle.plugin.BuildFinishFlowAction$Parameters` bean found in class `org.jetbrains.kotlin.gradle.plugin.BuildFinishFlowAction`.
    at org.gradle.internal.serialize.graph.BeanPropertyExtensionsKt.readPropertyValue(BeanPropertyExtensions.kt:70)
    at org.gradle.internal.serialize.graph.BeanPropertyExtensionsKt$readPropertyValue$1.invokeSuspend(BeanPropertyExtensions.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
    at org.gradle.internal.serialize.graph.CombinatorsKt$reentrant$1$decodeLoop$$inlined$Continuation$1.resumeWith(Continuation.kt:168)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
    at org.gradle.internal.serialize.graph.CombinatorsKt$reentrant$1$decodeLoop$$inlined$Continuation$1.resumeWith(Continuation.kt:168)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
    at org.gradle.internal.serialize.graph.CombinatorsKt$reentrant$1.decodeLoop(Combinators.kt:121)
    at org.gradle.internal.serialize.graph.CombinatorsKt$reentrant$1.decode(Combinators.kt:83)
    at org.gradle.internal.serialize.graph.codecs.BindingsBackedCodec.decode(BindingsBackedCodec.kt:69)
    at org.gradle.internal.serialize.graph.DefaultReadContext.read(Contexts.kt:175)
    at org.gradle.internal.serialize.codecs.core.RegisteredFlowActionCodec.decode(ProviderCodecs.kt:185)
    at org.gradle.internal.serialize.graph.codecs.BindingsBackedCodec.decode(BindingsBackedCodec.kt:69)
    at org.gradle.internal.serialize.graph.DefaultReadContext.read(Contexts.kt:175)
    at org.gradle.internal.serialize.graph.CombinatorsKt.readCollectionInto(Combinators.kt:187)
    at org.gradle.internal.serialize.codecs.stdlib.CollectionCodecsKt$collectionCodec$2.invokeSuspend(CollectionCodecs.kt:81)
    at org.gradle.internal.serialize.codecs.stdlib.CollectionCodecsKt$collectionCodec$2.invoke(CollectionCodecs.kt)
    at org.gradle.internal.serialize.codecs.stdlib.CollectionCodecsKt$collectionCodec$2.invoke(CollectionCodecs.kt)
    at org.gradle.internal.serialize.graph.CombinatorsKt$codec$1.decode(Combinators.kt:44)
    at org.gradle.internal.serialize.graph.codecs.BindingsBackedCodec.decode(BindingsBackedCodec.kt:69)
    at org.gradle.internal.serialize.graph.DefaultReadContext.read(Contexts.kt:175)
    at org.gradle.internal.serialize.graph.CodecKt.readNonNull(Codec.kt:129)
    at org.gradle.internal.cc.impl.ConfigurationCacheState.readFlowScopeOf(ConfigurationCacheState.kt:517)
    at org.gradle.internal.cc.impl.ConfigurationCacheState.readBuildContent$configuration_cache(ConfigurationCacheState.kt:485)
    at org.gradle.internal.cc.impl.ConfigurationCacheState.readBuildState(ConfigurationCacheState.kt:336)
    at org.gradle.internal.cc.impl.ConfigurationCacheState.readBuildsInTree(ConfigurationCacheState.kt:298)
    at org.gradle.internal.cc.impl.ConfigurationCacheState.readRootBuild(ConfigurationCacheState.kt:271)
    at org.gradle.internal.cc.impl.ConfigurationCacheState.readRootBuildState(ConfigurationCacheState.kt:172)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO$readRootBuildStateFrom$1.invokeSuspend(DefaultConfigurationCacheIO.kt:185)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO$readRootBuildStateFrom$1.invoke(DefaultConfigurationCacheIO.kt)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO$readRootBuildStateFrom$1.invoke(DefaultConfigurationCacheIO.kt)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO$readConfigurationCacheState$2.invokeSuspend(DefaultConfigurationCacheIO.kt:212)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO$readConfigurationCacheState$2.invoke(DefaultConfigurationCacheIO.kt)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO$readConfigurationCacheState$2.invoke(DefaultConfigurationCacheIO.kt)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO$withReadContextFor$1$1$1.invokeSuspend(DefaultConfigurationCacheIO.kt:326)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO$withReadContextFor$1$1$1.invoke(DefaultConfigurationCacheIO.kt)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO$withReadContextFor$1$1$1.invoke(DefaultConfigurationCacheIO.kt)
    at org.gradle.internal.serialize.graph.RunningKt$runReadOperation$2.invokeSuspend(Running.kt:33)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
    at org.gradle.internal.serialize.graph.RunningKt.runToCompletion(Running.kt:54)
    at org.gradle.internal.serialize.graph.RunningKt.runReadOperation(Running.kt:32)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO.withReadContextFor(DefaultConfigurationCacheIO.kt:325)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO.readConfigurationCacheState(DefaultConfigurationCacheIO.kt:210)
    at org.gradle.internal.cc.impl.DefaultConfigurationCacheIO.readRootBuildStateFrom(DefaultConfigurationCacheIO.kt:183)
    at org.gradle.internal.cc.impl.DefaultConfigurationCache$loadWorkGraph$1.invoke(DefaultConfigurationCache.kt:458)
    at org.gradle.internal.cc.impl.DefaultConfigurationCache$loadWorkGraph$1.invoke(DefaultConfigurationCache.kt:457)
    at org.gradle.internal.cc.impl.ConfigurationCacheRepository$StoreImpl$useForStateLoad$1.invoke(ConfigurationCacheRepository.kt:171)
    at org.gradle.internal.cc.impl.ConfigurationCacheRepository$StoreImpl$useForStateLoad$1.invoke(ConfigurationCacheRepository.kt:171)
    at org.gradle.internal.cc.impl.ConfigurationCacheRepository$StoreImpl$useForStateLoad$2.invoke(ConfigurationCacheRepository.kt:176)
    at org.gradle.internal.cc.impl.ConfigurationCacheRepository$StoreImpl$useForStateLoad$2.invoke(ConfigurationCacheRepository.kt:175)
    at org.gradle.internal.cc.impl.ConfigurationCacheRepository$withExclusiveAccessToCache$1.get(ConfigurationCacheRepository.kt:251)
    at org.gradle.cache.internal.LockOnDemandCrossProcessCacheAccess.withFileLock(LockOnDemandCrossProcessCacheAccess.java:90)
    at org.gradle.cache.internal.DefaultCacheCoordinator.withFileLock(DefaultCacheCoordinator.java:213)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.withFileLock(DefaultPersistentDirectoryStore.java:149)
    at org.gradle.cache.internal.DefaultCacheFactory$ReferenceTrackingCache.withFileLock(DefaultCacheFactory.java:206)
    at org.gradle.internal.cc.impl.ConfigurationCacheRepository.withExclusiveAccessToCache(ConfigurationCacheRepository.kt:249)
    at org.gradle.internal.cc.impl.ConfigurationCacheRepository.access$withExclusiveAccessToCache(ConfigurationCacheRepository.kt:48)
    at org.gradle.internal.cc.impl.ConfigurationCacheRepository$StoreImpl.useForStateLoad(ConfigurationCacheRepository.kt:175)
    at org.gradle.internal.cc.impl.ConfigurationCacheRepository$StoreImpl.useForStateLoad(ConfigurationCacheRepository.kt:171)
    at org.gradle.internal.cc.impl.DefaultConfigurationCache$loadFromCache$result$1.invoke(DefaultConfigurationCache.kt:472)
    at org.gradle.internal.cc.impl.DefaultConfigurationCache$loadFromCache$result$1.invoke(DefaultConfigurationCache.kt:471)
    at org.gradle.configurationcache.ConfigurationCacheBuildOperationsKt$withLoadOperation$1.call(ConfigurationCacheBuildOperations.kt:46)
...
It seems the Gradle test runner does not like the embeded Kotlin 1.9.24? Any insight please?
m
Many things could go wrong. Is there a cause for that exception? If you're building a Gradle plugin with K2 (which is fine), make sure to set
apiVersion
,
languageVersion
and
coreLibrariesVersion
to 1.9 1.8 and that none of your dependencies need kotlin-stdlib:2.0
a
There might be a problem with KGP 2.0 and Gradle 8.10, you could try reverting Gradle to 8.9 https://youtrack.jetbrains.com/issue/KT-70700
s
Thanks Martin and Adam! Unfortunately downgrading to 8.9 did not solve the problem for me. It has multiple projects and the plugin has the version enforced via version catalogs. I guess I'll need a way to isolate the plugin to use 1.9 while the rest projects can still be on 2.0.
BTW, what's preventing the plugin from using kotlin-stdlib 2.0?
m
Gradle forces
kotlin-stdlib:1.8
in a top-level classloader, 1.8 takes precedence over 2.0
You can still build your plugin with 2.0 as long as you set
apiVersion
,
languageVersion
and
coreLibrariesVersion
to 1.8
s
I'm pretty new to Gradle so I'm not sure I understand the whole thing but I think you are right @Martin What I did to fix it is to add the requirement on kotlin-gradle-plugin:1.9.24 in the buildScript in the fake project's build.gradle.kts. otherwise, the gradlerunner will use kotlin-gradle-plugin:2.0.0 and cause the described problem.
👍 1
m
I'm not sure anyone understands that whole thing 😅