From 8677f1b6ea1792fd16ef3793def916e89e834714 Mon Sep 17 00:00:00 2001 From: Ethan_Hu Date: Tue, 5 Mar 2019 14:58:32 +0800 Subject: [PATCH] Fixed NPE in RankingHelper.writeXml. Make sure that mRecords is operated with the object lock. Bug:127290258 Test: Repeat to upgrade the App targetversion from less than O to a later version Change-Id: I70e61c0fcd3071f32a430d45441ffe1376147a5d Signed-off-by: Ethan_Hu Merged-In: Ic7f676499425fe54453384d7c03de5d95c03a713 --- .../android/server/notification/RankingHelper.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/notification/RankingHelper.java b/services/core/java/com/android/server/notification/RankingHelper.java index da6e9c02c96a5..abd85cd35f57f 100644 --- a/services/core/java/com/android/server/notification/RankingHelper.java +++ b/services/core/java/com/android/server/notification/RankingHelper.java @@ -1401,11 +1401,14 @@ public class RankingHelper implements RankingConfig { } // Package upgrade try { - Record fullRecord = getRecord(pkg, - mPm.getPackageUidAsUser(pkg, changeUserId)); - if (fullRecord != null) { - createDefaultChannelIfNeeded(fullRecord); - deleteDefaultChannelIfNeeded(fullRecord); + synchronized (mRecords) { + final String key = recordKey(pkg, + mPm.getPackageUidAsUser(pkg, changeUserId)); + Record fullRecord = mRecords.get(key); + if (fullRecord != null) { + createDefaultChannelIfNeeded(fullRecord); + deleteDefaultChannelIfNeeded(fullRecord); + } } } catch (NameNotFoundException e) {} }