Description
Current Behavior
While trying to publish text message, i'm getting the NULL pointer exception.
Pasting the Logs:
java.lang.NullPointerException: java.lang.NullPointerExceptionjava.lang.NullPointerException at software.amazon.awssdk.core.internal.handler.BaseClientHandler.finalizeSdkHttpFullRequest(BaseClientHandler.java:80) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:143) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:112) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:167) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:94) at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45) at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:55) at software.amazon.awssdk.services.sns.DefaultSnsClient.publish(DefaultSnsClient.java:2130) at com.webapp3.webapp3.Handler.pubTextSMS(Handler.java:340) at com.webapp3.webapp3.Handler.handleRequest(Handler.java:108) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source)
Steps to Reproduce (for bugs)
Pasting the code i used.
SnsClient snsClient = SnsClient.builder()
.region(software.amazon.awssdk.regions.Region.AP_SOUTH_1)
.credentialsProvider(EnvironmentVariableCredentialsProvider.create())
.build();
PublishRequest request = PublishRequest.builder()
.message(message)
.phoneNumber(phoneNumber)
.build();
PublishResponse result = snsClient.publish(request);
Observed the same issue even without providing ".credentialsProvider" and also "with US region"
Context
Your Environment
- AWS Java SDK version used: aws-sdk-java-v2
- JDK version used: corretta 11
- Operating System and version: Lambda and Java application
Activity
debora-ito commentedon Jan 14, 2021
@rajasvs what version of the SDK you are using specifically - e.g. version
2.15.64
is the latest.Also, can you check for dependency version mismatches in your environment? If you're using maven you can run
mvn dependency:tree
.rajasvs commentedon Jan 14, 2021
debora-ito commentedon Jan 15, 2021
The Java SDK 2.x dependencies seem to be ok, they are all in version
2.15.61
.I see you are also building the Java SDK 1.11.x modules as dependencies, is this expected? It is not an issue, you can use both versions side to side, it's just unusual to use both versions at the same time.
rajasvs commentedon Jan 15, 2021
I have a little confusion here.
There is a set of packages under com:amazonaws: These packages currently have version 1.11.x
Examples;
com:amazonaws:aws-java-sdk-lambda
com:amazonaws:aws-java-sdk-sns
And, there is another set of packages under software:amazon:awssdk: These packages currently have version 2.15.x
Examples:
software:amazon:awssdk:lambda
software:amazon:awssdk:sns
My question is, which one should i use. And what is the difference between these two sets? I'm trying to develop a web service which tracks and sends notifications to end user. And, I intend to use Lambda, dynamoDB, SNS, API Gateway, etc. Kindly suggest.
One additional question: what is difference between software:amazon:awssdk/aws-sdk and software:amazon:awssdk/sdk-core?
Thanks
Raj
debora-ito commentedon Jan 15, 2021
Java SDK 2.x is a rewrite of version 1.11.x, and it has many features and improvements like non-blocking IO, automatic pagination and immutability - for more details you can read the 2.x release announcement or the Developer Guide.
For new projects we definitely recommend using version 2.x.
Here's an example of how your pom.xml should look like with
lambda
andsns
as dependencies:I see you also use some of the aws/aws-lambda-java-libs libraries, so add them as well:
Please let us know if you still see the NullPointerException after using only the SDK 2.15.x modules.
8 remaining items