Aws-sdk-android: Run time error:java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference

Created on 29 Dec 2016  Â·  7Comments  Â·  Source: aws-amplify/aws-sdk-android

This error has occurred multiple times within last 2 days

• What service are you using?
AWS SNS

• In what version of SDK are you facing the problem?
com.amazonaws:aws-android-sdk-core:2.3.3
com.amazonaws:aws-android-sdk-sns:2.3.3

• Is the issue limited to Simulators / Actual Devices?
Actual devices:

Device: LG G4 (p1); Manufacturer: LGE
Android version: Android 5.1;
RAM (MB): 3072; Screen size: 1440 × 2560; Screen density (dpi): 640; OpenGL ES version: 3.1
Native platform: armeabi-v7a; CPU make: Qualcomm; CPU model: MSM8992

Device: Galaxy S5 (kltetmo); Manufacturer: Samsung
Android version: Android 4.4
RAM (MB): 2048; Screen size: 1080 × 1920; Screen density (dpi): 480; OpenGL ES version: 3.0
Native platform: armeabi-v7a; CPU make: Qualcomm; CPU model: MSM8974

Device: Galaxy Note5 (nobleltevzw); Manufacturer: Samsung
Android version: Android 5.1;
RAM (MB) 4096; Screen size 1440 × 2560; Screen density (dpi) 560; OpenGL ES version 3.1
Native platform armeabi-v7a; CPU make Samsung; CPU model Exynos 7420

• Can your problem be resolved if you bump to a higher version of SDK?
This problem occurs in production environment with SDK 2.3.3. We were unable to replicate it in dev and can't determine if higher SDK addresses the issue.

• Is this problem related to specific Android/OS version?
No

• Please include a stacktrace if applicable:

java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference
at com.amazonaws.auth.CognitoCachingCredentialsProvider.getCredentials(CognitoCachingCredentialsProvider.java:456)
at com.amazonaws.auth.CognitoCachingCredentialsProvider.getCredentials(CognitoCachingCredentialsProvider.java:76)
at com.amazonaws.services.sns.AmazonSNSClient.invoke(AmazonSNSClient.java:2818)
at com.amazonaws.services.sns.AmazonSNSClient.createPlatformEndpoint(AmazonSNSClient.java:577)
at com.amazonaws.mobile.push.PushManager.createPlatformArn(PushManager.java:203)
at com.amazonaws.mobile.push.PushManager.onGCMTokenUpdate(PushManager.java:136)
at com.amazonaws.mobile.push.GCMTokenHelper.updateGCMToken(GCMTokenHelper.java:100)
at com.amazonaws.mobile.push.GCMTokenHelper$1.run(GCMTokenHelper.java:61)
at java.lang.Thread.run(Thread.java:818)

Most helpful comment

We're having the same problem:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference
       at com.amazonaws.auth.CognitoCachingCredentialsProvider.getCredentials(CognitoCachingCredentialsProvider.java:456)
       at com.zappos.android.aws.user.IdentityManager$AWSCredentialsProviderHolder.getCredentials(IdentityManager.java:63)
       at com.amazonaws.services.pinpoint.AmazonPinpointClient.invoke(AmazonPinpointClient.java:1783)
       at com.amazonaws.services.pinpoint.AmazonPinpointClient.updateEndpoint(AmazonPinpointClient.java:1594)
       at com.amazonaws.mobileconnectors.pinpoint.targeting.TargetingClient$1.run(TargetingClient.java:173)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)
compile 'com.amazonaws:aws-android-sdk-core:2.3.8'
compile 'com.amazonaws:aws-android-sdk-cognito:2.3.8'
compile 'com.amazonaws:aws-android-sdk-pinpoint:2.3.8'

All 7 comments

This problem happens with Pinpoint SDK as well. Here is a log:

java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference
at com.amazonaws.auth.CognitoCachingCredentialsProvider.getCredentials(CognitoCachingCredentialsProvider.java:456)
at com.amazonaws.mobile.user.IdentityManager$AWSCredentialsProviderHolder.getCredentials(IdentityManager.java:61)
at com.amazonaws.services.pinpoint.AmazonPinpointClient.invoke(AmazonPinpointClient.java:1783)
at com.amazonaws.services.pinpoint.AmazonPinpointClient.updateEndpoint(AmazonPinpointClient.java:1594)
at com.amazonaws.mobileconnectors.pinpoint.targeting.TargetingClient$1.run(TargetingClient.java:173)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)

Same problem on initializing AmazonWS

  • version of SDK:

    compile 'com.amazonaws:aws-android-sdk-core:2.3.4'
    compile('com.amazonaws:aws-android-sdk-cognito:2.3.4'){
    exclude group:'com.amazonaws', module:'aws-android-sdk-core'
    }
    compile('com.amazonaws:aws-android-sdk-sns:2.3.4'){
    exclude group:'com.amazonaws', module:'aws-android-sdk-core'
    }

and

compile 'com.amazonaws:aws-android-sdk-core:2.3.8'
compile('com.amazonaws:aws-android-sdk-cognito:2.3.8'){
exclude group:'com.amazonaws', module:'aws-android-sdk-core'
}
compile('com.amazonaws:aws-android-sdk-sns:2.3.8'){
exclude group:'com.amazonaws', module:'aws-android-sdk-core'
}

  • StackTrace:

java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference
at com.amazonaws.auth.CognitoCachingCredentialsProvider.getCredentials(CognitoCachingCredentialsProvider.java:456)
at com.parkeon.amazonaws.mobile.user.IdentityManager$AWSCredentialsProviderHolder.getCredentials(IdentityManager.java:58)
at com.amazonaws.services.sns.AmazonSNSClient.invoke(AmazonSNSClient.java:2818)
at com.amazonaws.services.sns.AmazonSNSClient.createPlatformEndpoint(AmazonSNSClient.java:577)
at com.parkeon.amazonaws.mobile.push.PushManager.createPlatformArn(PushManager.java:193)
at com.parkeon.amazonaws.mobile.push.PushManager.onGCMTokenUpdate(PushManager.java:131)
at com.parkeon.amazonaws.mobile.push.GCMTokenHelper.updateGCMToken(GCMTokenHelper.java:107)
at com.parkeon.amazonaws.mobile.push.GCMTokenHelper$1.run(GCMTokenHelper.java:68)
at java.lang.Thread.run(Thread.java:761)

Same exception for me w/ Pinpoint. I'm using the code generated by Mobile Hub.

java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference
    at com.amazonaws.auth.CognitoCachingCredentialsProvider.c(Unknown Source)
    at com.amazonaws.mobile.user.IdentityManager$AWSCredentialsProviderHolder.a(Unknown Source)
    at com.amazonaws.services.pinpoint.AmazonPinpointClient.a(Unknown Source)
    at com.amazonaws.services.pinpoint.AmazonPinpointClient.a(Unknown Source)
    at com.amazonaws.mobileconnectors.pinpoint.targeting.TargetingClient$1.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:818)
compile 'com.amazonaws:aws-android-sdk-core:2.3.8'
compile 'com.amazonaws:aws-android-sdk-cognito:2.3.8'
compile 'com.amazonaws:aws-android-sdk-mobileanalytics:2.3.8'
compile 'com.amazonaws:aws-android-sdk-pinpoint:2.3.8'

Happens at startup in response to AWSMobileClient.initializeMobileClientIfNecessary(this) within Application.onCreate(). The Play store console shows it happening across device types and Android OS versions.

Any workarounds? This is bringing down our production app dozens of times a day. Thanks

We're having the same problem:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference
       at com.amazonaws.auth.CognitoCachingCredentialsProvider.getCredentials(CognitoCachingCredentialsProvider.java:456)
       at com.zappos.android.aws.user.IdentityManager$AWSCredentialsProviderHolder.getCredentials(IdentityManager.java:63)
       at com.amazonaws.services.pinpoint.AmazonPinpointClient.invoke(AmazonPinpointClient.java:1783)
       at com.amazonaws.services.pinpoint.AmazonPinpointClient.updateEndpoint(AmazonPinpointClient.java:1594)
       at com.amazonaws.mobileconnectors.pinpoint.targeting.TargetingClient$1.run(TargetingClient.java:173)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)
compile 'com.amazonaws:aws-android-sdk-core:2.3.8'
compile 'com.amazonaws:aws-android-sdk-cognito:2.3.8'
compile 'com.amazonaws:aws-android-sdk-pinpoint:2.3.8'

This is related to #247

The underlying synchronization issue has been corrected in the AWS SDK for Android 2.3.9 Release. See the release notes for more details: https://aws.amazon.com/releasenotes/1894188094590101

Fantastic! Thanks for the fast turn around!!

Was this page helpful?
0 / 5 - 0 ratings