diff --git a/squirrel-foundation/src/main/java/org/squirrelframework/foundation/fsm/impl/StateMachineDataImpl.java b/squirrel-foundation/src/main/java/org/squirrelframework/foundation/fsm/impl/StateMachineDataImpl.java index 9e5e0e40..be9c1eda 100644 --- a/squirrel-foundation/src/main/java/org/squirrelframework/foundation/fsm/impl/StateMachineDataImpl.java +++ b/squirrel-foundation/src/main/java/org/squirrelframework/foundation/fsm/impl/StateMachineDataImpl.java @@ -171,7 +171,8 @@ public void lastActiveChildStateFor(S parentStateId, S childStateId) { @Override public void subStateFor(S parentStateId, S subStateId) { if (rawStateFrom(parentStateId) != null - && rawStateFrom(parentStateId).isParallelState()) { + && rawStateFrom(parentStateId).isParallelState() + && !parallelStatesStore.containsEntry(parentStateId, subStateId)) { parallelStatesStore.put(parentStateId, subStateId); } else { logger.warn("Cannot set sub states on none parallel state {}.",