diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/DefaultStateMachineExecutor.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/DefaultStateMachineExecutor.java index 6aee2a2b..65dd4d40 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/DefaultStateMachineExecutor.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/support/DefaultStateMachineExecutor.java @@ -136,6 +136,9 @@ public class DefaultStateMachineExecutor extends LifecycleObjectSupport im @Override public void queueDeferredEvent(Message message) { + if (log.isDebugEnabled()) { + log.debug("Deferring message " + message); + } deferList.addLast(message); } @@ -289,7 +292,13 @@ public class DefaultStateMachineExecutor extends LifecycleObjectSupport im processTriggerQueue(); } } + + if (requestTask.getAndSet(false)) { + scheduleEventQueueProcessing(); + } taskRef.set(null); + // do second attempt which should reduse risk + // of threading causing failed run to completion if (requestTask.getAndSet(false)) { scheduleEventQueueProcessing(); }