diff --git a/core/java/android/app/servertransaction/TransactionExecutorHelper.java b/core/java/android/app/servertransaction/TransactionExecutorHelper.java index 92f7dee0b0add..cb6aa09cc6dbc 100644 --- a/core/java/android/app/servertransaction/TransactionExecutorHelper.java +++ b/core/java/android/app/servertransaction/TransactionExecutorHelper.java @@ -31,6 +31,7 @@ import android.app.ActivityThread.ActivityClientRecord; import android.app.ClientTransactionHandler; import android.os.IBinder; import android.util.IntArray; +import android.util.Log; import com.android.internal.annotations.VisibleForTesting; @@ -43,6 +44,7 @@ import java.util.List; * @hide */ public class TransactionExecutorHelper { + private static final String TAG = TransactionExecutorHelper.class.getSimpleName(); // A penalty applied to path with destruction when looking for the shortest one. private static final int DESTRUCTION_PENALTY = 10; @@ -162,6 +164,11 @@ public class TransactionExecutorHelper { if (finalStates == null || finalStates.length == 0) { return UNDEFINED; } + if (r == null) { + // Early return because the ActivityClientRecord hasn't been created or cannot be found. + Log.w(TAG, "ActivityClientRecord was null"); + return UNDEFINED; + } final int currentState = r.getLifecycleState(); int closestState = UNDEFINED;