From f488523ee707233ce61e23b90d285c13943d7051 Mon Sep 17 00:00:00 2001 From: Hongwei Wang Date: Thu, 2 Apr 2020 12:08:59 -0700 Subject: [PATCH] Fix NPE when removing PIP stack Task#getDisplayArea is @Nullable and it happens when removing PIP stack. Bug: 152798429 Test: atest --iteration 5 PinnedStackTests Change-Id: Ie180df88d5705dce54f494913d226d9c0dc75f9a --- services/core/java/com/android/server/wm/ActivityStack.java | 6 +++++- 1 file changed, 5 insertions(+), 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 10b335e583b0b..391571e3cd2f5 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -727,9 +727,13 @@ class ActivityStack extends Task { private void setWindowingModeInSurfaceTransaction(int preferredWindowingMode, boolean animate, boolean showRecents, boolean enteringSplitScreenMode, boolean deferEnsuringVisibility, boolean creating) { + final TaskDisplayArea taskDisplayArea = getDisplayArea(); + if (taskDisplayArea == null) { + Slog.d(TAG, "taskDisplayArea is null, bail early"); + return; + } final int currentMode = getWindowingMode(); final int currentOverrideMode = getRequestedOverrideWindowingMode(); - final TaskDisplayArea taskDisplayArea = getDisplayArea(); final Task topTask = getTopMostTask(); int windowingMode = preferredWindowingMode; if (preferredWindowingMode == WINDOWING_MODE_UNDEFINED