feature/613-Receive-Task-support#643
Conversation
- publish the message only once per BPMN spec
- AI fixes
There was a problem hiding this comment.
Code Review
This pull request implements comprehensive support for BPMN Receive Tasks, including execution logic, multi-instance loop characteristics, boundary event subscriptions, and instantiating receive tasks that can trigger new process instances. The review feedback highlights two critical issues regarding token state persistence: first, in createMultiInstanceReceiveTask, the updated token returned by createReceiveTaskSubscription is discarded and never persisted in the Waiting state; second, in createReceiveTaskSubscription, the token state is updated to TokenStateWaiting only after the subscription is saved, causing the subscription to be persisted with an incorrect token state.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
- Gemini fixes
| variableHolder runtime.VariableHolder, | ||
| ) (runtime.ExecutionToken, error) { | ||
| if err := variableHolder.EvaluateAndSetMappingsToLocalVariables(element.GetInputMapping(), engine.evaluateExpression); err != nil { | ||
| currentToken.State = runtime.TokenStateFailed |
There was a problem hiding this comment.
From my point of view, it should probably create an incident because you are not able to continue, but please confirm this with Adam.
| OutputVariables: nil, | ||
| }) | ||
| if err != nil { | ||
| currentToken.State = runtime.TokenStateFailed |
There was a problem hiding this comment.
From my point of view, it should probably create an incident because you are not able to continue, but please confirm this with Adam.
| messageDef := bpmn20.TMessageEventDefinition{MessageRef: element.MessageRef} | ||
| correlationKey, err := engine.evaluateMessageCorrelationKey(*instance.ProcessInstance().Definition, variableHolder.LocalVariables(), messageDef) | ||
| if err != nil { | ||
| currentToken.State = runtime.TokenStateFailed |
There was a problem hiding this comment.
From my point of view, it should probably create an incident because you are not able to continue, but please confirm this with Adam.
| } | ||
| messageName, err := engine.getMessageName(*instance.ProcessInstance().Definition, messageDef) | ||
| if err != nil { | ||
| currentToken.State = runtime.TokenStateFailed |
There was a problem hiding this comment.
From my point of view, it should probably create an incident because you are not able to continue, but please confirm this with Adam.
- AI findings fixes - Remove sleep from sub_process_test.go
…ask-support # Conflicts: # pkg/bpmn/sub_process_test.go
- merge main
- Move non-test helper functions to the end of the file
- fix test race conditions
- Use zenbpm namespace instead of zeebe. Don't use Camunda links
No description provided.