From c76ca4f2f6125892ad9fb0c50b1cb48c266c3971 Mon Sep 17 00:00:00 2001 From: Jing Ji Date: Mon, 23 May 2022 13:03:33 -0700 Subject: [PATCH] Construct the UidState in case of not found during unparceling Bug: 232966772 Test: atest ProcStatsValidationTests Test: atest ProcessStatsDumpsysTest Test: atest CtsIncidentHostTestCases:ProcStatsProtoTest Change-Id: Id3b22522d407074fe1758c3ef43cd2f5e163cfdc --- .../android/internal/app/procstats/ProcessStats.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/app/procstats/ProcessStats.java b/core/java/com/android/internal/app/procstats/ProcessStats.java index 9fea86e837ca9..2fc49aff638e9 100644 --- a/core/java/com/android/internal/app/procstats/ProcessStats.java +++ b/core/java/com/android/internal/app/procstats/ProcessStats.java @@ -1183,7 +1183,16 @@ public final class ProcessStats implements Parcelable { + " " + proc); mProcesses.put(procName, uid, proc); - mUidStates.get(uid).addProcess(proc); + UidState uidState = mUidStates.get(uid); + if (uidState == null) { + // This is not expected, log a warning and construct a new UID state. + if (DEBUG_PARCEL) { + Slog.w(TAG, "Couldn't find the common UID " + uid + " for " + proc); + } + uidState = new UidState(this, uid); + mUidStates.put(uid, uidState); + } + uidState.addProcess(proc); } }