diff options
| author | 2020-06-09 16:02:42 +0800 | |
|---|---|---|
| committer | 2020-06-09 16:02:42 +0800 | |
| commit | 7326979bcdf0bfd85c46a0186b4eb025e8e695a5 (patch) | |
| tree | b27223ea76c43fbfe940644487d22acd2f04ff4c | |
| parent | f04e437777cf372d8531ac905729a317ae536e98 (diff) | |
Prevent NPE while finishing activity
Activity was finished and removed from history before entering
global lock and caused NPE when accessing its task.
Bug: 158299941
Test: existing tests
Change-Id: Iac49bb631653137785edff48c46e2263adbbda64
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityTaskManagerService.java | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 5f591b54b067..88b1ac31b26b 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -1685,6 +1685,11 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final NeededUriGrants resultGrants = collectGrants(resultData, r.resultTo); synchronized (mGlobalLock) { + // Sanity check in case activity was removed before entering global lock. + if (!r.isInHistory()) { + return true; + } + // Keep track of the root activity of the task before we finish it final Task tr = r.getTask(); final ActivityRecord rootR = tr.getRootActivity(); |