diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/ensemble/DistributedStateMachine.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/ensemble/DistributedStateMachine.java index adc354f8..06272211 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/ensemble/DistributedStateMachine.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/ensemble/DistributedStateMachine.java @@ -218,9 +218,13 @@ public class DistributedStateMachine extends LifecycleObjectSupport implem && ObjectUtils.nullSafeEquals(delegate.getId(), stateContext.getMessageHeader(StateMachineSystemConstants.STATEMACHINE_IDENTIFIER))) { StateMachineContext current = ensemble.getState(); - ensemble.setState(new DefaultStateMachineContext( - current.getState(), stateContext.getEvent(), stateContext - .getMessageHeaders(), stateContext.getStateMachine().getExtendedState())); + if (current != null) { + // TODO: it feels a bit wrong that this can be null so + // adding note here. feel this will come back to haunt us + ensemble.setState(new DefaultStateMachineContext( + current.getState(), stateContext.getEvent(), stateContext + .getMessageHeaders(), stateContext.getStateMachine().getExtendedState())); + } } return stateContext; }