Во время перехода без триггера охранник срабатывает дважды - PullRequest
0 голосов
/ 02 мая 2020

Вот как я определяю переход stateMachine в моей StateMachineModel

         transitionData.add(new TransitionData<>(Status.Drafted, Status.Finalized, null, null, validateGuard, TransitionKind.EXTERNAL));

Как вы можете видеть, от Drafted до Finalized - переход без триггера с ValidateGuard.

Однако я заметил, что в ситуации, когда ValidateGuard вернул false, ValidateGuard будет запущен дважды. Похоже, что он попытается перейти снова, если первый вызов validateGuard вернет false.

Это нежелательно для меня. Как я могу убедиться, что даже при переходе без триггера (транзит без события) защита будет срабатывать только ОДИН РАЗ?

Обратите внимание, что интересно, если ValudateGuard возвращает true. ValidateGuard запускается только один раз.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...