From f1ddb5e090d553bf6ddc50a35b455fade3e905b4 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Tue, 20 Oct 2015 14:44:45 -0700 Subject: Catch exceptions thrown by pending activity launches. When we perform pendign activity launches from the handler thread (as opposed to the a client binder thread), we must take care exceptions from such will not bring the system server down. Bug: 24983901 Change-Id: I0e75f6b51bf6172a8e1b9cccc5fffb9d50c63e30 --- .../core/java/com/android/server/am/ActivityStackSupervisor.java | 9 +++++++-- 1 file changed, 7 insertions(+), 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 bf63931fe447..17a86caccc4b 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -2467,8 +2467,13 @@ public final class ActivityStackSupervisor implements DisplayListener { final void doPendingActivityLaunchesLocked(boolean doResume) { while (!mPendingActivityLaunches.isEmpty()) { PendingActivityLaunch pal = mPendingActivityLaunches.remove(0); - startActivityUncheckedLocked(pal.r, pal.sourceRecord, null, null, pal.startFlags, - doResume && mPendingActivityLaunches.isEmpty(), null, null); + + try { + startActivityUncheckedLocked(pal.r, pal.sourceRecord, null, null, pal.startFlags, + doResume && mPendingActivityLaunches.isEmpty(), null, null); + } catch (Exception e) { + Slog.w(TAG, "Exception during pending activity launch pal=" + pal, e); + } } } -- cgit v1.2.3-59-g8ed1b