flowable / flowable/flowable-engine
Async StartEvent causes process level 'start' execution listener to be run twice
- Ngôn ngữ chính
- Java
- Star
- 9.5k
- Fork
- 2.9k
- Merge trung bình
- 7 giờ 8 phút
- Pull request đã merge (30 ngày)
- 2
Mô tả
**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.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu bằng cách đọc ContinueProcessOperation#run, ContinueProcessOperation#continueThroughFlowNode và ContinueProcessOperation#executeProcessStartExecutionListeners. Tái hiện vấn đề với một quy trình có thể thực thi tối thiểu chứa một async startEvent và một start execution listener ở cấp quy trình, sau đó so sánh với một sự kiện bắt đầu đồng bộ. Được xem là hoàn tất khi listener chạy đúng một lần lúc quy trình async bắt đầu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 48/100