Altinn / Altinn/app-lib-dotnet
GetSequenceFlowsBetween could return wrong list of flows between tasks in a complex process
- Dominant language
- C#
- Stars
- 8
- Forks
- 27
- Avg merge
- 1h 21m
- Merged PRs (30d)
- 7
Description
### Description of the bug
If there are multiple routes between two tasks GetSequenceFlowsBetween could choose the "wrong" path between tasks.
Example flow
```mermaid
stateDiagram
direction LR
state fork <>
state join <>
[*] --> Task1
Task1 --> fork
fork --> Task2
fork --> join
Task2 --> join
join --> Task3
Task3 --> [*]
```
There is in this scenario a possibility that the wrong path is returned.
### Steps To Reproduce
Not actually verified, bug is created after working on the code
### Additional Information
The method is used to get the FlowType of the SequenceFlow between two tasks and is tied to bug #61
As mentioned in #61: Adding possible state changing code to sequenceflows in a process seems like a bad idea. We should find a solution more in line with BPMN.
Contributor guide
Research direction
Start by locating GetSequenceFlowsBetween and inspect how it selects a route when multiple paths connect the same tasks. Reproduce the diagrammed fork/join case and verify which sequence flows are returned. Review bug #61 and the BPMN-related concerns before defining the expected behavior; done means the selected flow list is deterministic and represents the intended route.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100