summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Joe LaPenna <jlapenna@google.com> 2016-04-01 13:37:37 -0700
committer Joe LaPenna <jlapenna@google.com> 2016-04-01 14:07:35 -0700
commit33ee4bf18b51ba78f76e6f3302a21ef7550ae35c (patch)
tree3e2da697c59c06c5e183366246ffcaa9ae288095
parent9d5aadd5f2f3efbe128feb2e22a57d0aa5e7ad09 (diff)
Fix NPE in AlarmManager.cancel(...)
If AlarmManager.cancel is called before any component has had a chance to register an alarm, sWrappers will not have been set, as it is only initialized in setImpl. When cancelling an alarm and sWrappers does not exist, log a warning and return early. BUG: 27972657 Change-Id: Ied10719ba1d154f97eecfc32f429fd9ce39bf747
-rw-r--r--core/java/android/app/AlarmManager.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/core/java/android/app/AlarmManager.java b/core/java/android/app/AlarmManager.java
index cb2130c4528e..e4fff9dc8a8c 100644
--- a/core/java/android/app/AlarmManager.java
+++ b/core/java/android/app/AlarmManager.java
@@ -905,10 +905,12 @@ public class AlarmManager {
ListenerWrapper wrapper = null;
synchronized (AlarmManager.class) {
- final WeakReference<ListenerWrapper> wrapperRef;
- wrapperRef = sWrappers.get(listener);
- if (wrapperRef != null) {
- wrapper = wrapperRef.get();
+ if (sWrappers != null) {
+ final WeakReference<ListenerWrapper> wrapperRef;
+ wrapperRef = sWrappers.get(listener);
+ if (wrapperRef != null) {
+ wrapper = wrapperRef.get();
+ }
}
}