From 8f0555ac556266c52b5a52bb501ce00f36317696 Mon Sep 17 00:00:00 2001 From: louis_chang Date: Tue, 27 Oct 2015 10:45:53 +0800 Subject: [PATCH] [ActivityManager] Fix IndexOutOfBoundsException Symptom: The stack was deleted during cleanup, so the stack list size has reduced by one and cause this issue. IndexOutOfBoundsException: Invalid index 1, size is 1 Change-Id: Ic6722aed98a0ad789b331d00e89cb74bf3b36d4c --- .../java/com/android/server/am/ActivityStackSupervisor.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index af6f185e18af7..1195e83915577 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -2670,8 +2670,7 @@ public final class ActivityStackSupervisor implements DisplayListener { boolean didSomething = false; for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) { final ArrayList stacks = mActivityDisplays.valueAt(displayNdx).mStacks; - final int numStacks = stacks.size(); - for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) { + for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) { final ActivityStack stack = stacks.get(stackNdx); if (stack.finishDisabledPackageActivitiesLocked( packageName, filterByClasses, doit, evenPersistent, userId)) {