diff --git a/spring-statemachine-build-tests/src/test/java/org/springframework/statemachine/buildtests/ForkJoinEntryExitTests.java b/spring-statemachine-build-tests/src/test/java/org/springframework/statemachine/buildtests/ForkJoinEntryExitTests.java index 802874fc..567ac5e8 100644 --- a/spring-statemachine-build-tests/src/test/java/org/springframework/statemachine/buildtests/ForkJoinEntryExitTests.java +++ b/spring-statemachine-build-tests/src/test/java/org/springframework/statemachine/buildtests/ForkJoinEntryExitTests.java @@ -81,6 +81,8 @@ public class ForkJoinEntryExitTests extends AbstractBuildTests { .step().expectState("S1").and() .step() .sendEvent("E1") + .expectStateEntered(3) + .expectStateExited(1) .expectStates("S2", "S210", "S220").and() .step() .sendEvent("E2") @@ -109,8 +111,10 @@ public class ForkJoinEntryExitTests extends AbstractBuildTests { .step().expectState("S1").and() .step() .sendEvent("E1") + .expectStateEntered(3) + .expectStateExited(1) .expectStates("S2", "S210", "S220").and() - .step() + .step() .sendEvent("E2") .expectStateEntered(1) .expectStateExited(1) 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 6357495c..afa9a7d4 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 @@ -733,6 +733,7 @@ public abstract class AbstractStateMachine extends StateMachineObjectSuppo // need to check for from original state passed in kind = toState.getPseudoState() != null ? toState.getPseudoState().getKind() : null; if (kind == PseudoStateKind.FORK) { + exitCurrentState(toState, message, transition, stateMachine); ForkPseudoState fps = (ForkPseudoState) toState.getPseudoState(); for (State ss : fps.getForks()) { callPreStateChangeInterceptors(ss, message, transition, stateMachine);