DO NOT MERGE Fix NPE in executeDeletePackageLIF.

The parameter allUserHandles may sometimes be null.

Change-Id: Ie58cabe4bb1cae7173ad1d027e993a0b82a9f1ef
Bug: 167233572
Bug: 140256621
Test: atest EphemeralTest
(cherry picked from commit 01e0f4813af8502faaa683d55dbbc024b3080741)
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 7a38a45..c3c655d 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -19198,7 +19198,8 @@
 
         // We need to get the permission state before package state is (potentially) destroyed.
         final SparseBooleanArray hadSuspendAppsPermission = new SparseBooleanArray();
-        for (int userId : allUserHandles) {
+        // allUserHandles could be null, so call mUserManager.getUserIds() directly which is cached anyway.
+        for (int userId : mUserManager.getUserIds()) {
             hadSuspendAppsPermission.put(userId, checkPermission(Manifest.permission.SUSPEND_APPS,
                     packageName, userId) == PERMISSION_GRANTED);
         }