From 5bdf642005efcbf1b8d46411e171478b6383d2da Mon Sep 17 00:00:00 2001 From: Janne Valkealahti Date: Sat, 7 Mar 2015 17:51:20 +0000 Subject: [PATCH] fix mixups in submachines --- .../statemachine/config/EnumStateMachineFactory.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/EnumStateMachineFactory.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/EnumStateMachineFactory.java index 139c3a5c..4a4ebb57 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/EnumStateMachineFactory.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/EnumStateMachineFactory.java @@ -127,7 +127,11 @@ public class EnumStateMachineFactory, E extends Enum> exten Collection> transitionsData = getTransitionData(iterator.hasNext(), stateDatas); machine = buildMachine(machineMap, stateMap, stateDatas, transitionsData, getBeanFactory()); - machineMap.put(peek.getParent(), machine); + // TODO: last part in if feels a bit hack + // (!peek.isInitial() && !machineMap.containsKey(peek.getParent())) + if (peek.isInitial() || (!peek.isInitial() && !machineMap.containsKey(peek.getParent()))) { + machineMap.put(peek.getParent(), machine); + } regionStack.add(new MachineStackItem(machine, peek.getParent())); stateStack.push(stateData); }