Skip to content

SDK incompatible with Kotlin 1.6.x #736

@cloudshiftchris

Description

@cloudshiftchris

Describe the bug

Using AWS Kotlin SDK 0.17.9 as part of a Gradle plugin. Gradle embeds Kotlin as part of its distribution; the Kotlin version is tied to the Gradle version. As of latest Gradle 7.5.1, Kotlin 1.6.21 is embedded.

When using the AWS Kotlin SDK the below exception is encountered due to the SDK being compiled against Kotlin 1.7.x.

java.lang.NoSuchMethodError: 'long kotlin.time.TimeSource$Monotonic.markNow-z9LOYto()'
        at aws.smithy.kotlin.runtime.http.operation.SerializeHandler.call(SdkOperationExecution.kt:209)
        at aws.smithy.kotlin.runtime.http.operation.SerializeHandler.call(SdkOperationExecution.kt:102)
        at aws.smithy.kotlin.runtime.http.operation.InitializeHandler.call(SdkOperationExecution.kt:99)
        at aws.smithy.kotlin.runtime.io.middleware.Phase.handle(Phase.kt:60)
        at aws.smithy.kotlin.runtime.io.middleware.DecoratedHandler.call(Middleware.kt:40)
        at aws.smithy.kotlin.runtime.http.operation.SdkHttpOperationKt.execute(SdkHttpOperation.kt:85)
        at aws.smithy.kotlin.runtime.http.operation.SdkHttpOperationKt.roundTrip(SdkHttpOperation.kt:68)
        at aws.sdk.kotlin.services.codeartifact.DefaultCodeartifactClient.getAuthorizationToken(DefaultCodeartifactClient.kt:505)
        at cloudshift.gradle.settings.plugin.repository.codeartifact.tokenresolver.aws.AwsCodeArtifactTokenRepository.acquireTokenInternal(AwsCodeArtifactTokenRepository.kt:86)
        at cloudshift.gradle.settings.plugin.repository.codeartifact.tokenresolver.aws.AwsCodeArtifactTokenRepository.resolve(AwsCodeArtifactTokenRepository.kt:32)
        at cloudshift.gradle.settings.plugin.repository.codeartifact.tokenresolver.CodeArtifactTokenResolver$LoggingTokenRepositoryProxy.resolve(CodeArtifactTokenResolver.kt:51)
        at cloudshift.gradle.settings.plugin.repository.codeartifact.tokenresolver.CodeArtifactTokenResolver.tokenFromApi(CodeArtifactTokenResolver.kt:27)
        at cloudshift.gradle.settings.plugin.repository.codeartifact.tokenresolver.CodeArtifactTokenResolver.resolve(CodeArtifactTokenResolver.kt:20)
        at cloudshift.gradle.settings.plugin.repository.codeartifact.CodeArtifactService.obtainToken(CodeArtifactService.kt:24)
        at cloudshift.gradle.settings.plugin.repository.codeartifact.CodeArtifactTokenValueSource$obtain$1.invokeSuspend(CodeArtifactTokenValueSource.kt:28)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284)
        at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
        at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
        at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
        at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
        at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
        at cloudshift.gradle.settings.plugin.repository.codeartifact.CodeArtifactTokenValueSource.obtain(CodeArtifactTokenValueSource.kt:27)
        at cloudshift.gradle.settings.plugin.repository.codeartifact.CodeArtifactTokenValueSource.obtain(CodeArtifactTokenValueSource.kt:15)

Expected behavior

AWS Kotlin SDK work on Kotlin 1.6.x.

Current behavior

AWS Kotlin SDK does not work on Kotlin 1.6.x as detailed above

Steps to Reproduce

Include AWS Kotlin SDK in any Gradle 7.5.1 build script and make an API call.

Possible Solution

No response

Context

Unable to use AWS Kotlin SDK in any release version of Gradle.

AWS Kotlin SDK version used

0.17.9

Platform (JVM/JS/Native)

JVM

Operating System and version

MacOS Ventura

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue is a bug.wontfixWe have determined that we will not resolve the issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions