diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/AbstractStateMachine.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/AbstractStateMachine.java index f6fa55af..d3036e26 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/AbstractStateMachine.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/AbstractStateMachine.java @@ -567,7 +567,7 @@ public abstract class AbstractStateMachine extends StateMachineObjectSuppo return id; } - protected boolean acceptEvent(Message message) { + protected synchronized boolean acceptEvent(Message message) { if ((currentState != null && currentState.shouldDefer(message))) { log.info("Current state " + currentState + " deferred event " + message); stateMachineExecutor.queueDeferredEvent(message); @@ -712,7 +712,7 @@ public abstract class AbstractStateMachine extends StateMachineObjectSuppo return null; } - void setCurrentState(State state, Message message, Transition transition, boolean exit, StateMachine stateMachine) { + synchronized void setCurrentState(State state, Message message, Transition transition, boolean exit, StateMachine stateMachine) { State findDeep = findDeepParent(state); boolean isTargetSubOf = false;