From 70fb36f03de06cae3eb94545e9f6e9f7b3ef1f68 Mon Sep 17 00:00:00 2001 From: wilsonshih Date: Mon, 27 Dec 2021 21:17:05 +0800 Subject: [PATCH] Prevent client got NPE crash if setIntent was set to null. Not sure why app overwrite the start intent to null, but we should prevent app from crash in frameworks. Bug: 210930049 Test: run test app; presubmit Change-Id: Ifa27c2258b1e7a2a49b1a4155bd5ada79fa2d1af --- core/java/android/app/Activity.java | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 11a2edea77dd6..cf2b7aca8e520 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -6191,18 +6191,20 @@ public class Activity extends ContextThemeWrapper @Nullable public Uri getReferrer() { Intent intent = getIntent(); - try { - Uri referrer = intent.getParcelableExtra(Intent.EXTRA_REFERRER); - if (referrer != null) { - return referrer; + if (intent != null) { + try { + Uri referrer = intent.getParcelableExtra(Intent.EXTRA_REFERRER); + if (referrer != null) { + return referrer; + } + String referrerName = intent.getStringExtra(Intent.EXTRA_REFERRER_NAME); + if (referrerName != null) { + return Uri.parse(referrerName); + } + } catch (BadParcelableException e) { + Log.w(TAG, "Cannot read referrer from intent;" + + " intent extras contain unknown custom Parcelable objects"); } - String referrerName = intent.getStringExtra(Intent.EXTRA_REFERRER_NAME); - if (referrerName != null) { - return Uri.parse(referrerName); - } - } catch (BadParcelableException e) { - Log.w(TAG, "Cannot read referrer from intent;" - + " intent extras contain unknown custom Parcelable objects"); } if (mReferrer != null) { return new Uri.Builder().scheme("android-app").authority(mReferrer).build();