From 4a88bf99851a3db3b629df23b919f2660c492f18 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Mon, 18 Aug 2014 18:07:23 -0700 Subject: [PATCH] Fix issue #17114392: android.com.phone crashes - PackageManager code Change-Id: Ib02119c6f313384a73fa7cb7b2b62dbd716fa6ca --- .../server/pm/PackageManagerService.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index b62c304dd3525..c5379ad973372 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -11580,18 +11580,20 @@ public class PackageManagerService extends IPackageManager.Stub { } } - if (DEBUG_PREFERRED) { - Slog.i(TAG, existing.size() + " existing preferred matches for:"); - filter.dump(new LogPrinter(Log.INFO, TAG), " "); - } - for (int i = 0; i < existing.size(); i++) { - PreferredActivity pa = existing.get(i); + if (existing != null) { if (DEBUG_PREFERRED) { - Slog.i(TAG, "Removing existing preferred activity " - + pa.mPref.mComponent + ":"); - pa.dump(new LogPrinter(Log.INFO, TAG), " "); + Slog.i(TAG, existing.size() + " existing preferred matches for:"); + filter.dump(new LogPrinter(Log.INFO, TAG), " "); + } + for (int i = 0; i < existing.size(); i++) { + PreferredActivity pa = existing.get(i); + if (DEBUG_PREFERRED) { + Slog.i(TAG, "Removing existing preferred activity " + + pa.mPref.mComponent + ":"); + pa.dump(new LogPrinter(Log.INFO, TAG), " "); + } + pir.removeFilter(pa); } - pir.removeFilter(pa); } } addPreferredActivityInternal(filter, match, set, activity, true, userId,