From abe10b3e62accae7a9c218bf24ebe49754663e8a Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Mon, 1 Apr 2019 18:55:29 -0700 Subject: [PATCH] Catch ArrayIndexOutOfBoundsException in StateMachine.toString() StateMachine.toString() calls mSmHandler.getCurrentState(). In the rare case when mStateStackTopIndex is -1 due to the StateMachine being not yet initalized, this results in an ArrayIndexOutOfBoundsException. Bug: 124858416 Test: none Change-Id: Id558be95b6e12d8a923d325bca5f6f6d7f942b22 --- core/java/com/android/internal/util/StateMachine.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/java/com/android/internal/util/StateMachine.java b/core/java/com/android/internal/util/StateMachine.java index dacdae6fd6c6a..6c217e5a37bf1 100644 --- a/core/java/com/android/internal/util/StateMachine.java +++ b/core/java/com/android/internal/util/StateMachine.java @@ -28,7 +28,6 @@ import com.android.internal.annotations.VisibleForTesting; import java.io.FileDescriptor; import java.io.PrintWriter; -import java.io.StringWriter; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; @@ -2102,7 +2101,7 @@ public class StateMachine { try { name = mName.toString(); state = mSmHandler.getCurrentState().getName().toString(); - } catch (NullPointerException npe) { + } catch (NullPointerException | ArrayIndexOutOfBoundsException e) { // Will use default(s) initialized above. } return "name=" + name + " state=" + state;