Детали задачи
-
Ошибка
-
Решение: Resolved
-
Medium
-
Community Core 3.38.0
-
Не заполнено
-
Не заполнено
-
Major
Описание
Обнаружена ошибка при запуске новых задач в caseManagment, после завершения других задач/таймеров: в процессе запускаются 2 задачи, которые не должны запускаться одновременно (параллельно).
Причины ошибки: после завершения, какого-нибудь шага - формируется список 'Stage' (HashSet), которые связанны с завершением рассматриваемого шага ('stage-children-stopped'). Соответственно порядок получения записей из HashSet может не соответствовать порядку, в котором записывались эти записи (зависимость от hashCode).
Пример:
Stage1
Child11
Child111
Child112
Child12
Stage2
Child21
–
При завершении Child112:
- добавляем Child11 в Set, для последующей проверки, что все дочернии активности завершены
- добавляем Stage1 в Set, для последующей проверки, что все дочернии активности завершены
- Цикл по Set:
3.1. первый элемент Stage1, проверяем, что все дочернии активности завершены
3.1.1. для этапа Stage1 отправляется событие - stage-children-stopped
3.1.2. запускается Stage2
3.2. второй элемент Child11, проверяем, что все дочернии активности завершены
3.2.1. Child11, отправляется событие - stage-children-stopped
3.2.2. запускается Child12
В результате получаем запущенную задачу Child12 и Child21.
PS: CaseActivityEventTrigger.TransactionData.stagesToTryComplete
Вложенные файлы
Связи запроса
- mentioned on