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
70c2114
What browsers are you seeing the problem on?
Not browser-specific.
Relevant log output
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)
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
70c2114
What browsers are you seeing the problem on?
Not browser-specific.
Relevant log output
Proposed Solution or Design
After: register priority 2 then priority 1 -> stored order 1, 2 -> control selected first
Affected Area
Workflow Engine (Amber)