From 6282ef79320ea2999ba1ffd3b9579b5bfbbc1055 Mon Sep 17 00:00:00 2001 From: Janne Valkealahti Date: Fri, 15 Jan 2016 12:40:46 +0000 Subject: [PATCH] Fix possible event miss in zk dist machine - Add condition to check if we're behind for notify events. - Fixes #152 --- .../statemachine/zookeeper/ZookeeperStateMachineEnsemble.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spring-statemachine-zookeeper/src/main/java/org/springframework/statemachine/zookeeper/ZookeeperStateMachineEnsemble.java b/spring-statemachine-zookeeper/src/main/java/org/springframework/statemachine/zookeeper/ZookeeperStateMachineEnsemble.java index 01614751..263d5589 100644 --- a/spring-statemachine-zookeeper/src/main/java/org/springframework/statemachine/zookeeper/ZookeeperStateMachineEnsemble.java +++ b/spring-statemachine-zookeeper/src/main/java/org/springframework/statemachine/zookeeper/ZookeeperStateMachineEnsemble.java @@ -408,7 +408,10 @@ public class ZookeeperStateMachineEnsemble extends StateMachineEnsembleObj traceLogWrappers(currentWrapper, notifyWrapper, newWrapper); if (currentWrapper.version + 1 == newWrapper.version + && notifyWrapper.version >= currentWrapper.version && stateRef.compareAndSet(currentWrapper, newWrapper)) { + // simply used to check if we don't need to replay, if so + // we can just try to notify mayNotifyStateChanged(newWrapper); } else { final int start = (notifyWrapper != null ? (notifyWrapper.version) : 0) % logSize;