flowable / flowable/flowable-engine
Async StartEvent causes process level 'start' execution listener to be run twice
- 主要语言
- Java
- 星标
- 9.5k
- 派生
- 2.9k
- 平均合并
- 7 小时 8 分钟
- 30 天内合并 PR
- 2
描述
**Describe the bug**
If the start event element of the diagram is **async** then `ContinueProcessOperation#run` is called twice for the start event element which leads to calling any process level execution listeners twice as well (see also `ContinueProcessOperation#continueThroughFlowNode` and `ContinueProcessOperation#executeProcessStartExecutionListeners`).
If the start event element is **sync** then the listener is called just once (as expected).
**Expected behavior**
The process level start execution listener should be called just once when the process is started.
**Code**
Should be pretty straightforward for you to reproduce with any trivial diagram that starts like this:
```
...
```
**Additional context**
Using latest Flowable version (process engine only) with Spring Boot, Postgres 10.
贡献指南
这个仓库没有索引到贡献指南
调研方向
首先阅读 ContinueProcessOperation#run、ContinueProcessOperation#continueThroughFlowNode 和 ContinueProcessOperation#executeProcessStartExecutionListeners。使用包含 async startEvent 和流程级 start execution listener 的最小可执行流程重现该问题,然后将其与同步 start event 进行比较。当 async 流程启动时 listener 恰好运行一次,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- backend
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 48/100