From 9436f5236679bd69bf06958c9c3c216c8b49411f Mon Sep 17 00:00:00 2001 From: Evan Rosky Date: Fri, 28 Oct 2022 21:32:50 +0000 Subject: [PATCH] Transitions can also be aborted after start. They only stop being abortable once they are playing. START is valid. Auto's tests seem to hit this case frequently when it kills/restarts their carlauncher. Bug: 255631687 Test: test_mapping_presubmit_cloud_auto_car_services Change-Id: I8564e5dfef541fa06717ebbd77ae4e03016b6906 --- services/core/java/com/android/server/wm/Transition.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 32f61978d7303..eec149ce1bd16 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -837,8 +837,8 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe void abort() { // This calls back into itself via controller.abort, so just early return here. if (mState == STATE_ABORT) return; - if (mState != STATE_COLLECTING) { - throw new IllegalStateException("Too late to abort."); + if (mState != STATE_COLLECTING && mState != STATE_STARTED) { + throw new IllegalStateException("Too late to abort. state=" + mState); } ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Aborting Transition: %d", mSyncId); mState = STATE_ABORT;