From 347188667b984fb43e8f973b105ddbde4a8fdb8b Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Wed, 3 Oct 2012 16:06:41 -0700 Subject: [PATCH] Avoid NPE when installing app update. PMS sends REMOVED followed quickly by ADDED. Ignore when missing package, since it may be coming back shortly. Eventually we should change this to watch EXTRA_REPLACING. Bug: 7269896 Change-Id: I3b518f4faee34019c5c808824d5e46261f6d206a --- .../applications/InstalledAppDetails.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index c5b3f8c3efd..55f18d20c18 100644 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -568,14 +568,19 @@ public class InstalledAppDetails extends Fragment } } mAppEntry = mState.getEntry(packageName); - // Get application info again to refresh changed properties of application - try { - mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName, - PackageManager.GET_DISABLED_COMPONENTS | - PackageManager.GET_UNINSTALLED_PACKAGES | - PackageManager.GET_SIGNATURES); - } catch (NameNotFoundException e) { - Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e); + if (mAppEntry != null) { + // Get application info again to refresh changed properties of application + try { + mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName, + PackageManager.GET_DISABLED_COMPONENTS | + PackageManager.GET_UNINSTALLED_PACKAGES | + PackageManager.GET_SIGNATURES); + } catch (NameNotFoundException e) { + Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e); + } + } else { + Log.w(TAG, "Missing AppEntry; maybe reinstalling?"); + mPackageInfo = null; } return packageName;