Closed
Description
Expected Behavior
SDK should skip bad profiles or lazy load the default chain
Current Behavior
java.lang.NoClassDefFoundError: Could not initialize class software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider
at software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder.lambda$mergeChildDefaults$0(AwsDefaultClientBuilder.java:111)
at software.amazon.awssdk.utils.builder.SdkBuilder.applyMutation(SdkBuilder.java:61)
at software.amazon.awssdk.core.client.config.SdkClientConfiguration.merge(SdkClientConfiguration.java:67)
at software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder.mergeChildDefaults(AwsDefaultClientBuilder.java:109)
at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.syncClientConfiguration(SdkDefaultClientBuilder.java:143)
at software.amazon.awssdk.services.cognitoidentity.DefaultCognitoIdentityClientBuilder.buildClient(DefaultCognitoIdentityClientBuilder.java:29)
at software.amazon.awssdk.services.cognitoidentity.DefaultCognitoIdentityClientBuilder.buildClient(DefaultCognitoIdentityClientBuilder.java:22)
at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.build(SdkDefaultClientBuilder.java:119)
at software.aws.toolkits.core.ToolkitClientManager.createNewClient(ToolkitClientManager.kt:120)
at software.aws.toolkits.core.ToolkitClientManager$getClient$2.apply(ToolkitClientManager.kt:63)
at software.aws.toolkits.core.ToolkitClientManager$getClient$2.apply(ToolkitClientManager.kt:28)
True exception is:
com.intellij.diagnostic.PluginException: [Plugin: aws.toolkit]
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convertStub(ActionManagerImpl.java:149)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getActionImpl(ActionManagerImpl.java:471)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getAction(ActionManagerImpl.java:459)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActions(ActionManagerImpl.java:1275)
at com.intellij.openapi.actionSystem.impl.ActionPreloader.preload(ActionPreloader.java:32)
at com.intellij.openapi.application.Preloader.lambda$null$0(Preloader.java:66)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:164)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:582)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:87)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:151)
at com.intellij.openapi.application.Preloader.lambda$initComponent$1(Preloader.java:63)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:227)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$100(BoundedTaskExecutor.java:26)
at com.intellij.util.concurrency.BoundedTaskExecutor$2$1.run(BoundedTaskExecutor.java:200)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:229)
at com.intellij.util.concurrency.BoundedTaskExecutor$2.run(BoundedTaskExecutor.java:194)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ExceptionInInitializerError
at software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder.lambda$mergeChildDefaults$0(AwsDefaultClientBuilder.java:111)
at software.amazon.awssdk.utils.builder.SdkBuilder.applyMutation(SdkBuilder.java:61)
at software.amazon.awssdk.core.client.config.SdkClientConfiguration.merge(SdkClientConfiguration.java:67)
at software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder.mergeChildDefaults(AwsDefaultClientBuilder.java:109)
at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.syncClientConfiguration(SdkDefaultClientBuilder.java:143)
at software.amazon.awssdk.services.cognitoidentity.DefaultCognitoIdentityClientBuilder.buildClient(DefaultCognitoIdentityClientBuilder.java:29)
at software.amazon.awssdk.services.cognitoidentity.DefaultCognitoIdentityClientBuilder.buildClient(DefaultCognitoIdentityClientBuilder.java:22)
at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.build(SdkDefaultClientBuilder.java:119)
at software.aws.toolkits.core.ToolkitClientManager.createNewClient(ToolkitClientManager.kt:120)
at software.aws.toolkits.core.ToolkitClientManager$getClient$2.apply(ToolkitClientManager.kt:63)
at software.aws.toolkits.core.ToolkitClientManager$getClient$2.apply(ToolkitClientManager.kt:28)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at software.aws.toolkits.core.ToolkitClientManager.getClient(ToolkitClientManager.kt:63)
at software.aws.toolkits.jetbrains.services.telemetry.AWSCognitoCredentialsProvider.<init>(CognitoIdentityProvider.kt:98)
at software.aws.toolkits.jetbrains.services.telemetry.AWSCognitoCredentialsProvider.<init>(CognitoIdentityProvider.kt:41)
at software.aws.toolkits.jetbrains.services.telemetry.DefaultTelemetryService.<init>(TelemetryService.kt:77)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.picocontainer.defaults.InstantiatingComponentAdapter.newInstance(InstantiatingComponentAdapter.java:193)
at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.doGetComponentInstance(CachingConstructorInjectionComponentAdapter.java:85)
at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.instantiateGuarded(CachingConstructorInjectionComponentAdapter.java:62)
at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.getComponentInstance(CachingConstructorInjectionComponentAdapter.java:45)
at com.intellij.openapi.components.impl.ServiceManagerImpl$MyComponentAdapter.getComponentInstance(ServiceManagerImpl.java:209)
at com.intellij.util.pico.DefaultPicoContainer.getLocalInstance(DefaultPicoContainer.java:246)
at com.intellij.util.pico.DefaultPicoContainer.getComponentInstance(DefaultPicoContainer.java:213)
at com.intellij.openapi.components.ServiceManager.doGetService(ServiceManager.java:52)
at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:26)
at software.aws.toolkits.jetbrains.services.telemetry.TelemetryService$Companion.getInstance(TelemetryService.kt:39)
at software.aws.toolkits.jetbrains.components.telemetry.AnActionWrapper.<clinit>(ActionWrappers.kt:50)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convertStub(ActionManagerImpl.java:145)
... 19 more
Caused by: java.lang.NullPointerException: Access key ID cannot be blank.
at software.amazon.awssdk.utils.Validate.notNull(Validate.java:98)
at software.amazon.awssdk.auth.credentials.AwsBasicCredentials.<init>(AwsBasicCredentials.java:66)
at software.amazon.awssdk.auth.credentials.AwsBasicCredentials.<init>(AwsBasicCredentials.java:58)
at software.amazon.awssdk.auth.credentials.AwsBasicCredentials.create(AwsBasicCredentials.java:78)
at software.amazon.awssdk.auth.credentials.internal.ProfileCredentialsUtils.basicProfileCredentialsProvider(ProfileCredentialsUtils.java:110)
at software.amazon.awssdk.auth.credentials.internal.ProfileCredentialsUtils.credentialsProvider(ProfileCredentialsUtils.java:98)
at software.amazon.awssdk.auth.credentials.internal.ProfileCredentialsUtils.credentialsProvider(ProfileCredentialsUtils.java:80)
at software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider.lambda$new$0(ProfileCredentialsProvider.java:65)
at java.util.Optional.flatMap(Optional.java:241)
at software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider.<init>(ProfileCredentialsProvider.java:64)
at software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider.<init>(ProfileCredentialsProvider.java:44)
at software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider$BuilderImpl.build(ProfileCredentialsProvider.java:193)
at software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider.create(ProfileCredentialsProvider.java:85)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.createChain(DefaultCredentialsProvider.java:68)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.<init>(DefaultCredentialsProvider.java:50)
at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.<clinit>(DefaultCredentialsProvider.java:42)
... 53 more
Possible Solution(s)
- Do not parse credentials file in init method
- Make
.option(AwsClientOption.CREDENTIALS_PROVIDER, DefaultCredentialsProvider.create())
actually a supplier instead of init-ing the chain.
Steps to Reproduce (for bugs)
Use this profile:
[default]
region = us-west-2
aws_access_key_id =
aws_secret_access_key =
Context
Your Environment
- AWS Java SDK version used: 2.2.0
- JDK version used: 1.8
- Operating System and version: Mac
Metadata
Metadata
Assignees
Labels
No labels