diff --git a/src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java b/src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java index b001399..4e80863 100644 --- a/src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java +++ b/src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java @@ -44,10 +44,10 @@ public class DefaultConcurrentStateMachine extends AbstractStateMachine im if (current == -1 || newIndex == -1) return false; - S oldState = get(index.get()); + S oldState = get(current); boolean result = index.compareAndSet(current, newIndex); if (result && invokeHandlers) { - S newState = get(index.get()); + S newState = get(newIndex); invokeHandlers(oldState, newState); }