From 31cdfb401da53bec41a020f300c8f10dd7733290 Mon Sep 17 00:00:00 2001 From: Mike Ma Date: Fri, 29 Jun 2018 12:18:27 -0700 Subject: [PATCH] Fix a NPE in BatteryStatsImpl ServiceManager.getService("batteryproperties")) may return null for some devices right after boot. (We don't know why, need further investigation) This causes async batterystats update to crash, leaving BatteryStats in a bad state (OnBattery() == true, but mOnBatteryTimeBase is not running), which does not accept aggregated stats update anymore. Bug: 109930230 Test: manual Change-Id: I0654beff95f0a2b9df2567f1a2efffd3330e58ff --- core/java/com/android/internal/os/BatteryStatsImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index d7db2e2a90e59..5b837990d73cb 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -4021,7 +4021,9 @@ public class BatteryStatsImpl extends BatteryStats { try { IBatteryPropertiesRegistrar registrar = IBatteryPropertiesRegistrar.Stub.asInterface( ServiceManager.getService("batteryproperties")); - registrar.scheduleUpdate(); + if (registrar != null) { + registrar.scheduleUpdate(); + } } catch (RemoteException e) { // Ignore. }