diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 9b348fce01a5a..13459100f5e5a 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -3885,8 +3885,11 @@ public class Notification implements Parcelable } if (mN.extras.containsKey(EXTRA_PEOPLE_LIST)) { - ArrayList people = mN.extras.getParcelableArrayList(EXTRA_PEOPLE_LIST, android.app.Person.class); - mPersonList.addAll(people); + ArrayList people = mN.extras.getParcelableArrayList(EXTRA_PEOPLE_LIST, + android.app.Person.class); + if (people != null && !people.isEmpty()) { + mPersonList.addAll(people); + } } if (mN.getSmallIcon() == null && mN.icon != 0) { diff --git a/core/tests/coretests/src/android/app/NotificationTest.java b/core/tests/coretests/src/android/app/NotificationTest.java index 4548730fc4876..34d669bb5ebd2 100644 --- a/core/tests/coretests/src/android/app/NotificationTest.java +++ b/core/tests/coretests/src/android/app/NotificationTest.java @@ -31,6 +31,7 @@ import static android.app.Notification.EXTRA_LARGE_ICON_BIG; import static android.app.Notification.EXTRA_MEDIA_REMOTE_INTENT; import static android.app.Notification.EXTRA_MEDIA_SESSION; import static android.app.Notification.EXTRA_MESSAGING_PERSON; +import static android.app.Notification.EXTRA_PEOPLE_LIST; import static android.app.Notification.EXTRA_PICTURE; import static android.app.Notification.EXTRA_PICTURE_ICON; import static android.app.Notification.MessagingStyle.Message.KEY_DATA_URI; @@ -816,6 +817,23 @@ public class NotificationTest { } } + @Test + public void testRecoverBuilder_nullExtraPeopleList_noCrash() { + Bundle extras = new Bundle(); + extras.putParcelable(EXTRA_PEOPLE_LIST, null); + + Notification n = new Notification.Builder(mContext, "test") + .setSmallIcon(0) + .addExtras(extras) + .build(); + Bundle fakeTypes = new Bundle(); + fakeTypes.putParcelable(EXTRA_BUILDER_APPLICATION_INFO, new Bundle()); + + Notification.Builder.recoverBuilder(mContext, n); + + // no crash, good + } + @Test public void testVisitUris_invalidExtra_noCrash() { Notification n = new Notification.Builder(mContext, "test")