From 43ae441ad7d0df12f3982fc60406582445d2df4e Mon Sep 17 00:00:00 2001 From: Adam Lesinski Date: Wed, 1 Jul 2015 12:09:45 -0700 Subject: [PATCH] BatteryStats: Don't assume every kernel reports a power field in /proc/uid_cputime Bug:22225706 Change-Id: I4c7d889716345231564c1e96494dc84aab17cf01 --- .../com/android/internal/os/KernelUidCpuTimeReader.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/os/KernelUidCpuTimeReader.java b/core/java/com/android/internal/os/KernelUidCpuTimeReader.java index e2d366a8ea3ad..45cc8b2260ef5 100644 --- a/core/java/com/android/internal/os/KernelUidCpuTimeReader.java +++ b/core/java/com/android/internal/os/KernelUidCpuTimeReader.java @@ -77,7 +77,12 @@ public class KernelUidCpuTimeReader { final int uid = Integer.parseInt(uidStr.substring(0, uidStr.length() - 1), 10); final long userTimeUs = Long.parseLong(splitter.next(), 10); final long systemTimeUs = Long.parseLong(splitter.next(), 10); - final long powerMaUs = Long.parseLong(splitter.next(), 10) / 1000; + final long powerMaUs; + if (splitter.hasNext()) { + powerMaUs = Long.parseLong(splitter.next(), 10) / 1000; + } else { + powerMaUs = 0; + } if (callback != null) { long userTimeDeltaUs = userTimeUs;