为什么 Activiti 中的进程在生命周期中丢失 boundaryEvent

Why process in Activiti lose boundaryEvent during lifecycle

我创建了图表,它使用 boundaryEvent 来表示某些操作已完成。

<boundaryEvent id="boundarysignal1" name="cancel" attachedToRef="subprocess3" cancelActivity="true">
 <signalEventDefinition signalRef="cancelApplication"></signalEventDefinition>
 </boundaryEvent>

一切正常,但在某一时刻(我还没有发现),进程失去了对事件的绑定,所以我根本无法使用与 boundaryEvent 相关的流。发现在运行时 Activiti 将记录创建到 ACT_RU_EVENT_SUBSCR table 中,它保存对 ACT_HI_PROCINST table 中存储流程实例数据的适当记录的事件订阅。同时我看到进程没有关闭并且还活着,相应的 END_FIELD 列为空。

下一个代码没有 return 任何东西,因为事件未绑定:

final List<Execution> executionList =runtimeService.createExecutionQuery().processVariableValueEquals("VAR_NAME","VAR_VALUE").signalEventSubscriptionName(SIGNAL_CANCEL_PROCESS).list(); 

同时进程处于活动状态,因为下一个结果是成功的:

final List<ProcessInstance> instances = runtimeService.createProcessInstanceQuery().variableValueEquals("VAR_NAME","VAR_VALUE").active().list();

boundaryEvent 与 Process 分离的原因是什么?

环境:SpringBoot 1.3.2;活动 5.19.0.2

ACT_RU_EVENT_SUBSCR table(工作示例):

ACT_HI_PROCINST table(工作示例):

ACT_RU_EVENT_SUBSCR table(不是工作示例,table 为空):

ACT_HI_PROCINST table(不工作的例子):

流程定义图:

子流程 1、2、3:

这里提到了一种可能性:
https://community.alfresco.com/docs/DOC-4591
发行说明 - Activiti - 版本 5.20.0
...
部署新流程定义版本时信号和边界事件订阅丢失
...

这是我们升级到 5.20 的主要原因