From 560f41e5c9ecf761129df8f2f2903c9ded4c0bdb Mon Sep 17 00:00:00 2001 From: Vishnu Nair Date: Fri, 19 Nov 2021 13:01:21 -0800 Subject: [PATCH] WM: ANR window pid if activity has no active process Fixes a NPE when trying to access the activity's ProcessRecord before calling into ActivityManager. Test: presubmit Fixes: 204520514 Change-Id: If89be2943a43efd7724be2294835170394049a13 --- .../core/java/com/android/server/wm/ActivityRecord.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index b6e5876b22192..54fdd969cb3b3 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -6214,15 +6214,15 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A public boolean inputDispatchingTimedOut(String reason, int windowPid) { ActivityRecord anrActivity; WindowProcessController anrApp; - boolean windowFromSameProcessAsActivity; + boolean blameActivityProcess; synchronized (mAtmService.mGlobalLock) { anrActivity = getWaitingHistoryRecordLocked(); anrApp = app; - windowFromSameProcessAsActivity = - !hasProcess() || app.getPid() == windowPid || windowPid == INVALID_PID; + blameActivityProcess = hasProcess() + && (app.getPid() == windowPid || windowPid == INVALID_PID); } - if (windowFromSameProcessAsActivity) { + if (blameActivityProcess) { return mAtmService.mAmInternal.inputDispatchingTimedOut(anrApp.mOwner, anrActivity.shortComponentName, anrActivity.info.applicationInfo, shortComponentName, app, false, reason);