diff options
| author | 2016-01-10 13:15:41 -0700 | |
|---|---|---|
| committer | 2016-01-10 13:15:43 -0700 | |
| commit | 377ded0fce449f77cd7efae35f97722cdab52693 (patch) | |
| tree | 0a68f8684f6602e28246e9962771d8013317d56a | |
| parent | 2b60ca45a1e97bd62e84e5de6ebd353fef956a80 (diff) | |
Fix NPE when UID has no packages.
Bug: 25224723
Change-Id: I637214666a1f02bd23474c27a285eea9152cfa9d
| -rw-r--r-- | core/java/android/content/pm/PackageManager.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/net/NetworkPolicyManagerService.java | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index c325d3d356cc..5a9a67c35b88 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -3115,7 +3115,7 @@ public abstract class PackageManager { * @return Returns an array of one or more packages assigned to the user * id, or null if there are no known packages with the given id. */ - public abstract String[] getPackagesForUid(int uid); + public abstract @Nullable String[] getPackagesForUid(int uid); /** * Retrieve the official name associated with a user id. This name is @@ -3128,7 +3128,7 @@ public abstract class PackageManager { * @return Returns a unique name for the given user id, or null if the * user id is not currently assigned. */ - public abstract String getNameForUid(int uid); + public abstract @Nullable String getNameForUid(int uid); /** * Return the user id associated with a shared user name. Multiple diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index 4325efdb77f3..47643006d4ed 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -2234,9 +2234,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final String[] packages = mContext.getPackageManager().getPackagesForUid(uid); final int userId = UserHandle.getUserId(uid); - for (String packageName : packages) { - if (!mUsageStats.isAppIdle(packageName, uid, userId)) { - return false; + if (!ArrayUtils.isEmpty(packages)) { + for (String packageName : packages) { + if (!mUsageStats.isAppIdle(packageName, uid, userId)) { + return false; + } } } return true; |