From 895d981852219cd087605f6ac2b04beb876a863d Mon Sep 17 00:00:00 2001 From: Ashok Mutyala Date: Wed, 11 Aug 2021 11:17:19 +0000 Subject: [PATCH] Avoid the scenario where Contexts list filled with null value in ShowAnrDialogs() Problem: Framework Reboot i.e., NullPointer Exception in android.ui Thread E AndroidRuntime: FATAL EXCEPTION IN SYSTEM PROCESS: android.ui E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference E AndroidRuntime: **at android.app.Dialog.(Dialog.java:199) E AndroidRuntime: **at android.app.AlertDialog.(AlertDialog.java:204) E AndroidRuntime: **at android.app.AlertDialog.(AlertDialog.java:200) E AndroidRuntime: **at com.android.server.am.BaseErrorDialog.(BaseErrorDialog.java:39) E AndroidRuntime: **at com.android.server.am.AppNotRespondingDialog.(AppNotRespondingDialog.java:53) E AndroidRuntime: **at com.android.server.am.ErrorDialogController.showAnrDialogs(ErrorDialogController.java:183) E AndroidRuntime: **at com.android.server.am.AppErrors.handleShowAnrUi(AppErrors.java:1077) Analysis: As Context Object is passed from showAnrDialogs method and will be retrieved from getDisplayContextWithErrorDialogs And list of context objects will be filled by querying from RootWindowContainer.getDisplayUiContext and this method is Annotated with Nullable. So, the possibility could be null value filled in the context object List. Bug: 196189977 Test: Stability Test Change-Id: Ib944fc5ffc8bcca999c75f99d462d441e555fcda --- .../java/com/android/server/wm/WindowProcessController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java index e6a35f1267b55..1f8a437abe085 100644 --- a/services/core/java/com/android/server/wm/WindowProcessController.java +++ b/services/core/java/com/android/server/wm/WindowProcessController.java @@ -908,7 +908,7 @@ public class WindowProcessController extends ConfigurationContainer