diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/service/DefaultStateMachineService.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/service/DefaultStateMachineService.java index cba0feba..a96cf015 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/service/DefaultStateMachineService.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/service/DefaultStateMachineService.java @@ -84,8 +84,10 @@ public class DefaultStateMachineService implements StateMachineService acquireStateMachine(String machineId, boolean start) { log.info("Acquiring machine with id " + machineId); + StateMachine stateMachine; + // naive sync to handle concurrency with release synchronized (machines) { - StateMachine stateMachine = machines.get(machineId); + stateMachine = machines.get(machineId); if (stateMachine == null) { log.info("Getting new machine from factory with id " + machineId); stateMachine = stateMachineFactory.getStateMachine(machineId); @@ -100,8 +102,9 @@ public class DefaultStateMachineService implements StateMachineService