From 1e5261ce6f913c471cd099f476eb4411ce122ddb Mon Sep 17 00:00:00 2001 From: Patrick Baumann Date: Wed, 6 Nov 2019 10:36:39 -0800 Subject: [PATCH] DO NOT MERGE: Fixes NPE when preparing app data during init When deleting an unused static shared library on Q, the user manager was fetched via mContext.getSystemService. At this time during boot, the service wasn't registered and so null was returned. This has already been addressed in R with a move to injecting dependencies in the PackageManagerService constructor. Bug: 142083996 Bug: 141413692 Test: manual; remove static dependency on eng Q build and reboot Exempt-From-Owner-Approval: Already approved in https://googleplex-android-review.git.corp.google.com/c/platform/frameworks/base/+/9684883/ Change-Id: I8ae4e331d09b4734c54cdc6887b273705dce88b1 Merged-In: I8ae4e331d09b4734c54cdc6887b273705dce88b1 --- .../java/com/android/server/pm/PackageManagerService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 7e05ce72850ae..6d32f7aed8d7f 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -22344,9 +22344,9 @@ public class PackageManagerService extends IPackageManager.Stub mSettings.writeKernelMappingLPr(ps); } - final UserManager um = mContext.getSystemService(UserManager.class); + final UserManagerService um = sUserManager; UserManagerInternal umInternal = getUserManagerInternal(); - for (UserInfo user : um.getUsers()) { + for (UserInfo user : um.getUsers(false /* excludeDying */)) { final int flags; if (umInternal.isUserUnlockingOrUnlocked(user.id)) { flags = StorageManager.FLAG_STORAGE_DE | StorageManager.FLAG_STORAGE_CE;