diff options
author | Robert Carr <racarr@google.com> | 2015-10-20 14:44:45 -0700 |
---|---|---|
committer | Rob Carr <racarr@google.com> | 2015-10-20 21:51:26 +0000 |
commit | f1ddb5e090d553bf6ddc50a35b455fade3e905b4 (patch) | |
tree | 7e62ff79c16c66ebfe3fb70f4510597f88883859 /services | |
parent | 482349364715dfcd87dc83e0913fc60dc6df0497 (diff) | |
download | frameworks_base-f1ddb5e090d553bf6ddc50a35b455fade3e905b4.zip frameworks_base-f1ddb5e090d553bf6ddc50a35b455fade3e905b4.tar.gz frameworks_base-f1ddb5e090d553bf6ddc50a35b455fade3e905b4.tar.bz2 |
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
Diffstat (limited to 'services')
-rw-r--r-- | services/core/java/com/android/server/am/ActivityStackSupervisor.java | 9 |
1 files 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 bf63931..17a86ca 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); + } } } |