resetStateMachine不会清除其ID

时间:2017-07-05 14:59:01

标签: spring-statemachine

我正在使用StateMachine个实例的汇集列表(目前仅限于一个)并且正在切换statemachine正在使用的上下文 - 但StateMachine ID永远不会更新,而我当我尝试继续时,最终覆盖数据库中的statemachine。有关如何以及如何问题的更多信息。

我的问题是为什么在使用空上下文调用resetStateMachine(在AbstractStateMachine.java中)(即尝试创建新的上下文)时,这不会清除机器的当前ID(我理解为什么UUID保留 - 这对机器来说是唯一的)但是id也与上下文有关,不是吗?如果上下文不为null,则尝试从stateMachineContext

中提取id

相关来源摘录:

如果context为null:

log.info("Got null context, resetting to initial state and clearing extended state");
this.currentState = this.initialState;
this.extendedState.getVariables().clear();

如果context不为null:

this.setId(stateMachineContext.getId());

当我稍后调用persist.restore撤回状态机上下文时,这意味着我有一个旧的id存在并最终覆盖而不是使用新的id来持续存在。

这是使用当前发布的版本1.2.5.RELEASE

1 个答案:

答案 0 :(得分:0)

是的,如果传递了null上下文,我们也没有看到为什么我们不清除id的原因。您是否介意创建一个github问题来跟踪该更改请求?