From 00859bd548215f154adaab51ab214bd0c9df9d7b Mon Sep 17 00:00:00 2001 From: Victor Chang Date: Tue, 17 May 2016 16:50:08 +0100 Subject: [PATCH] Temp fix for NPE when race condition happens in TrustedCredentialsSettings Bug: 28762124 Change-Id: I21e46c2008e106db1c43573171e0d852cbe0a68a --- src/com/android/settings/TrustedCredentialsSettings.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/TrustedCredentialsSettings.java b/src/com/android/settings/TrustedCredentialsSettings.java index c630ed6c37..4100e75b58 100644 --- a/src/com/android/settings/TrustedCredentialsSettings.java +++ b/src/com/android/settings/TrustedCredentialsSettings.java @@ -695,16 +695,18 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment for (int i = 0; i < n; ++i) { UserHandle profile = profiles.get(i); int profileId = profile.getIdentifier(); - if (shouldSkipProfile(profile)) { - certHoldersByProfile.put(profileId, new ArrayList(0)); - continue; - } List aliases = aliasesByProfileId.get(profileId); if (isCancelled()) { return new SparseArray>(); } - IKeyChainService service = mKeyChainConnectionByProfileId.get(profileId) - .getService(); + KeyChainConnection keyChainConnection = mKeyChainConnectionByProfileId.get( + profileId); + if (shouldSkipProfile(profile) || aliases == null + || keyChainConnection == null) { + certHoldersByProfile.put(profileId, new ArrayList(0)); + continue; + } + IKeyChainService service = keyChainConnection.getService(); List certHolders = new ArrayList(max); final int aliasMax = aliases.size(); for (int j = 0; j < aliasMax; ++j) { -- 2.11.0