Late control queue registration breaks message priority
- Dominant language
- Scala
- Stars
- 314
- Forks
- 187
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 214
Description
### Feature Summary
When a new priority group belongs before an existing group, LinkedBlockingMultiQueue appends it instead of inserting it at the discovered position. A control queue registered after a data queue can therefore run after lower-priority data.
Before: register priority 2 then priority 1 -> stored order 2, 1 -> data selected first
After: register priority 2 then priority 1 -> stored order 1, 2 -> control selected first
Reproduction evidence:
Register a data subqueue with priority 2, then a control subqueue with priority 1. Put one message in each and read the first message.
Version and commit evidence:
1.3.0-incubating-SNAPSHOT (main)
**Commit Hash**
70c21145887920528d7d5540e3fb790b43e8b759
**What browsers are you seeing the problem on?**
Not browser-specific.
**Relevant log output**
```text
priority_order= [2, 1]
first_message= data message
second_message= control message
```
### Proposed Solution or Design
After: register priority 2 then priority 1 -> stored order 1, 2 -> control selected first
### Affected Area
Workflow Engine (Amber)
Contributor guide
Assessment
This issue has not been assessed yet.