resetStateMachine 不清除它的 id

resetStateMachine does not clear its id

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

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

中提取 id

相关来源摘录:

如果上下文为空:

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

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