diff --git a/data/etc/services.core.protolog.json b/data/etc/services.core.protolog.json index 92c0dabfd13e7..2a0e476d27262 100644 --- a/data/etc/services.core.protolog.json +++ b/data/etc/services.core.protolog.json @@ -2059,6 +2059,12 @@ "group": "WM_DEBUG_CONFIGURATION", "at": "com\/android\/server\/wm\/ActivityRecord.java" }, + "-233530384": { + "message": "Content Recording: Incoming session on display %d can't be set since it is already null; the corresponding VirtualDisplay must have already been removed.", + "level": "VERBOSE", + "group": "WM_DEBUG_CONTENT_RECORDING", + "at": "com\/android\/server\/wm\/ContentRecordingController.java" + }, "-230587670": { "message": "SyncGroup %d: Unfinished container: %s", "level": "VERBOSE", diff --git a/services/core/java/com/android/server/wm/ContentRecordingController.java b/services/core/java/com/android/server/wm/ContentRecordingController.java index 040da8862c748..4da55e20382e3 100644 --- a/services/core/java/com/android/server/wm/ContentRecordingController.java +++ b/services/core/java/com/android/server/wm/ContentRecordingController.java @@ -98,6 +98,13 @@ final class ContentRecordingController { mSession == null ? null : mSession.getVirtualDisplayId()); incomingDisplayContent = wmService.mRoot.getDisplayContentOrCreate( incomingSession.getVirtualDisplayId()); + if (incomingDisplayContent == null) { + ProtoLog.v(WM_DEBUG_CONTENT_RECORDING, + "Content Recording: Incoming session on display %d can't be set since it " + + "is already null; the corresponding VirtualDisplay must have " + + "already been removed.", incomingSession.getVirtualDisplayId()); + return; + } incomingDisplayContent.setContentRecordingSession(incomingSession); // TODO(b/270118861): When user grants consent to re-use, explicitly ask ContentRecorder // to update, since no config/display change arrives. Mark recording as black.