From 24f7a03daf5a18c7f6e06817afe70a07e5f3d29f Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Tue, 11 Dec 2018 10:49:48 +0800 Subject: [PATCH] Prevents NPE after stack got removed from display Application crashed and the top activity was immediately finished after paused timeout. If there was no activities left in stack, it would be removed from display and updated the display id to invalid. Therefore, the system crashed in accessing a null ActivityDisplay object. Bug: 120667451 Test: existing test pass Change-Id: Ica978faf4233d8e6a709fa92f87d850f6ab8e061 --- services/core/java/com/android/server/wm/ActivityStack.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index 7683172815e9c..aca9702a45c84 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -1797,7 +1797,7 @@ class ActivityStack extends ConfigurationContai // focus). Also if there is an active pinned stack - we always want to notify it about // task stack changes, because its positioning may depend on it. if (mStackSupervisor.mAppVisibilitiesChangedSinceLastPause - || getDisplay().hasPinnedStack()) { + || (getDisplay() != null && getDisplay().hasPinnedStack())) { mService.getTaskChangeNotificationController().notifyTaskStackChanged(); mStackSupervisor.mAppVisibilitiesChangedSinceLastPause = false; }