0

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

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

相关来源的摘录:

如果上下文为空:

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

如果上下文不为空:

this.setId(stateMachineContext.getId());

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

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

4

1 回答 1

0

id是的,如果传递了空上下文,看不到任何我们不会清除的原因。您介意创建一个 github 问题来跟踪该更改请求吗?

于 2017-07-06T08:16:21.837 回答