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 bdf2a5e9..f5985774 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 @@ -570,7 +570,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); @@ -704,7 +704,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;