Altinn / Altinn/app-lib-dotnet

GetSequenceFlowsBetween could return wrong list of flows between tasks in a complex process

Open
#62 0 comments 0 reactions 0 assignees View on GitHub
kind/bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.