-
Notifications
You must be signed in to change notification settings - Fork 30
Closed
Labels
bugThis issue is a bug.This issue is a bug.p1This is a high priority issueThis is a high priority issue
Description
Describe the bug
We're using the S3 client from the Kotlin AWS SDK in our project. Recently, okhttp 5.0.0-alpha.17 was published, in which they've removed ConnectionListener
from the public API.
This leads to a java.lang.NoClassDefFoundError: okhttp3/ConnectionListener
when initializing the S3 client using the OkHttpEngine and setting its connectionIdlePollingInterval
property to a non-null value.
Regression Issue
- Select this option if this issue appears to be a regression.
Expected behavior
It should work the same way as before with okhttp 5.0.0-alpha.16.
Current behavior
The following exception is thrown on AWS SDK client initialization:
Exception in thread "main" java.lang.NoClassDefFoundError: okhttp3/ConnectionListener
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at aws.smithy.kotlin.runtime.http.engine.okhttp.OkHttpEngine.<init>(OkHttpEngine.kt:48)
at aws.smithy.kotlin.runtime.http.engine.okhttp.OkHttpEngine$Companion.invoke(OkHttpEngine.kt:42)
at aws.smithy.kotlin.runtime.http.engine.okhttp.OkHttpEngine$Companion$engineConstructor$1.invoke(OkHttpEngine.kt:44)
at aws.smithy.kotlin.runtime.http.engine.okhttp.OkHttpEngine$Companion$engineConstructor$1.invoke(OkHttpEngine.kt:44)
at aws.smithy.kotlin.runtime.http.engine.HttpEngineConfigImpl$BuilderImpl.httpClientImpl$lambda$9(HttpEngineConfigImpl.kt:74)
at aws.smithy.kotlin.runtime.http.engine.HttpEngineConfigImpl$BuilderImpl.buildHttpEngineConfig(HttpEngineConfigImpl.kt:77)
at aws.sdk.kotlin.services.s3.S3Client$Config$Builder.buildHttpEngineConfig(S3Client.kt)
at aws.sdk.kotlin.services.s3.S3Client$Config.<init>(S3Client.kt:295)
at aws.sdk.kotlin.services.s3.S3Client$Config.<init>(S3Client.kt)
at aws.sdk.kotlin.services.s3.S3Client$Config$Builder.build(S3Client.kt:542)
at aws.sdk.kotlin.services.s3.S3Client$Config$Builder.build(S3Client.kt:359)
at aws.smithy.kotlin.runtime.client.AbstractSdkClientBuilder.build(AbstractSdkClientBuilder.kt:20)
at aws.smithy.kotlin.runtime.client.AbstractSdkClientBuilder.build(AbstractSdkClientBuilder.kt:13)
at aws.sdk.kotlin.runtime.config.AbstractAwsSdkClientFactory.fromEnvironment(AbstractAwsSdkClientFactory.kt:117)
Steps to Reproduce
Create a Kotlin project using the following dependencies:
dependencies {
implementation("aws.sdk.kotlin:s3:1.4.115")
implementation("aws.smithy.kotlin:http-client-engine-okhttp:1.4.21")
implementation("com.squareup.okhttp3:okhttp:5.0.0-alpha.17")
}
Then, create an S3 client like so:
S3Client.fromEnvironment {
httpClient(OkHttpEngine) {
connectionIdlePollingInterval = 200.milliseconds
}
}
Possible Solution
As a current workaround, we've downgraded our okhttp dependency back to 5.0.0-alpha.16
Context
No response
Smithy-Kotlin version
1.4.21
Platform (JVM/JS/Native)
21
Operating system and version
Windows 11
zdenda-online and JGerdes
Metadata
Metadata
Assignees
Labels
bugThis issue is a bug.This issue is a bug.p1This is a high priority issueThis is a high priority issue