From 9c9888b8c59e35717ecfc32e9b96fb8702ceb480 Mon Sep 17 00:00:00 2001 From: Svetoslav Date: Tue, 26 Aug 2014 15:19:52 -0700 Subject: Fix a crash in PrintSpooler. If the user cancels printing we cancel the current pring operation in the RemotePrintDocument which is a state machine enforcing valid state transitions. A valid transition was not allowed: finishing after canceled. bug:17182301 Change-Id: Iccf3a78d7dc736a64bf5c44941a8f8064dcd0ec3 --- .../src/com/android/printspooler/model/RemotePrintDocument.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java b/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java index 9351078ab97f..d1aa33b7a788 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java +++ b/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java @@ -258,7 +258,8 @@ public final class RemotePrintDocument { Log.i(LOG_TAG, "[CALLED] finish()"); } if (mState != STATE_STARTED && mState != STATE_UPDATED - && mState != STATE_FAILED && mState != STATE_CANCELING) { + && mState != STATE_FAILED && mState != STATE_CANCELING + && mState != STATE_CANCELED) { throw new IllegalStateException("Cannot finish in state:" + stateToString(mState)); } -- cgit v1.2.3-59-g8ed1b