From 7fe18ea17d1e0759424dd7eaa2586b4219504aea Mon Sep 17 00:00:00 2001 From: Riddle Hsu Date: Mon, 31 May 2021 12:40:07 +0800 Subject: [PATCH] Prevent potential NPE of checking task drawn for logger The place is only called from: 1. notifyActivityLaunched (more likely) The activity must be launched successfully so ideally its task shouldn't be null. 2. notifyVisibilityChanged The only caller (setVisibility) has checked non-null parent (task). Still add a simple check for the unknown case. Bug: 189540136 Test: ActivityMetricsLaunchObserverTests Change-Id: Iae4a3ad1ae35f1a206d5cf47c7e41e0013aa5077 --- .../core/java/com/android/server/wm/ActivityMetricsLogger.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java index e1b7dd3a081b4..98d02776fb30b 100644 --- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java +++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java @@ -790,7 +790,7 @@ class ActivityMetricsLogger { // window drawn event should report later to complete the transition. Otherwise all // activities in this task may be finished, invisible or drawn, so the transition event // should be cancelled. - if (t.forAllActivities( + if (t != null && t.forAllActivities( a -> a.mVisibleRequested && !a.isReportedDrawn() && !a.finishing)) { return; }