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 问题来跟踪该更改请求吗?
我正在使用 StateMachine
个实例的合并列表(目前仅限于一个)并且正在切换 statemachine
正在使用的上下文 - 但是 StateMachine ID
永远不会更新当我尝试坚持时,我最终覆盖了数据库中的 statemachine
。有关以下内容以及问题的更多信息。
我的问题是为什么在使用空上下文(即尝试创建新上下文)调用 resetStateMachine
(在 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
是的,没有任何理由我们不清除 id
如果传递了空上下文。您介意创建一个 github 问题来跟踪该更改请求吗?