From 39583b53d1fd1bb9f6878ad32e03bf5d55f2d140 Mon Sep 17 00:00:00 2001 From: Jeff Davidson Date: Mon, 12 Dec 2016 11:55:37 -0800 Subject: [PATCH] Add Log.wtf when getSummaryForAllUid NPEs. This will provide stack trace information from the system process which should enable us to more easily track down where the crash is occurring. Test: Builds locally Bug: 33427276 Change-Id: I584a568fc038771afb28a534e2eefe2f763ed5e1 --- .../server/net/NetworkStatsService.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java index 4658c0463f0ed..e2e74e904aae5 100644 --- a/services/core/java/com/android/server/net/NetworkStatsService.java +++ b/services/core/java/com/android/server/net/NetworkStatsService.java @@ -553,15 +553,21 @@ public class NetworkStatsService extends INetworkStatsService.Stub { @Override public NetworkStats getSummaryForAllUid( NetworkTemplate template, long start, long end, boolean includeTags) { - @NetworkStatsAccess.Level int accessLevel = checkAccessLevel(mCallingPackage); - final NetworkStats stats = - getUidComplete().getSummary(template, start, end, accessLevel); - if (includeTags) { - final NetworkStats tagStats = getUidTagComplete() - .getSummary(template, start, end, accessLevel); - stats.combineAllValues(tagStats); + try { + @NetworkStatsAccess.Level int accessLevel = checkAccessLevel(mCallingPackage); + final NetworkStats stats = + getUidComplete().getSummary(template, start, end, accessLevel); + if (includeTags) { + final NetworkStats tagStats = getUidTagComplete() + .getSummary(template, start, end, accessLevel); + stats.combineAllValues(tagStats); + } + return stats; + } catch (NullPointerException e) { + // TODO: Track down and fix the cause of this crash and remove this catch block. + Slog.wtf(TAG, "NullPointerException in getSummaryForAllUid", e); + throw e; } - return stats; } @Override