diff --git a/src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java b/src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java index aea3c1b..529413d 100644 --- a/src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java +++ b/src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java @@ -175,12 +175,12 @@ public abstract class AbstractStateMachine extends AbstractStateManager im return false; } S oldState = get(); - boolean result = super.switchTo(state); - if (result) { - S newState = get(); - invokeHandlers(oldState, newState); - } - return result; + + updateCurrentIndex(i); + + S newState = get(); + invokeHandlers(oldState, newState); + return true; } finally { writeLock.unlock(); }