From 92a26b6f51b5f303cdcdaeab824e109b3dddc32e Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Thu, 23 Mar 2023 13:25:58 +0000 Subject: [PATCH] Fix IndexOutOfBoundsException while handle app crash The `mActivities` size could change while the the activity is detached (r.detachFromProcess). Bug: 274859740 Test: wm presubmit Change-Id: I05d7b5a79d3f7cffca707a7ad7cce1b871f0c8ff --- .../java/com/android/server/wm/WindowProcessController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java index 8685723a5807d..c34aa2b336cd5 100644 --- a/services/core/java/com/android/server/wm/WindowProcessController.java +++ b/services/core/java/com/android/server/wm/WindowProcessController.java @@ -378,8 +378,9 @@ public class WindowProcessController extends ConfigurationContainer= 0; --i) { - final ActivityRecord r = mActivities.get(i); + ArrayList activities = new ArrayList<>(mActivities); + for (int i = activities.size() - 1; i >= 0; --i) { + final ActivityRecord r = activities.get(i); Slog.w(TAG, " Force finishing activity " + r.mActivityComponent.flattenToShortString()); r.detachFromProcess();