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
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user