diff options
| author | 2016-04-01 13:37:37 -0700 | |
|---|---|---|
| committer | 2016-04-01 14:07:35 -0700 | |
| commit | 33ee4bf18b51ba78f76e6f3302a21ef7550ae35c (patch) | |
| tree | 3e2da697c59c06c5e183366246ffcaa9ae288095 | |
| parent | 9d5aadd5f2f3efbe128feb2e22a57d0aa5e7ad09 (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.java | 10 |
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(); + } } } |