Closed barmac closed 3 months ago
I suspect https://github.com/bpmn-io/properties-panel/commit/bb1cfb05a41f3e7632ace7f34927e198e43ad775 as there were no big changes in the templates project in the marked commit apart from @bpmn-io/properties-panel
version bump.
The direct cause of the problem is an unhandled error in the rendering when we try to get camunda:name
of a non-existing output parameter. Somehow after the parameter is removed, we still try to render this component, although it should not be rendered according to this if
: https://github.com/bpmn-io/bpmn-js-element-templates/blob/main/src/element-templates/properties-panel/properties/OutputProperties.js#L67
So this is a race condition. Correct flow is: toggle switch -> remove parameter -> render without AssignToProcessVariable
; the actual flow is: toggle switch -> remove parameter -> rerender AssignToProcessVariable
-> 💣
I've just confirmed that the bug appears when https://github.com/camunda/camunda-modeler/issues/4382#issuecomment-2178314298 is included.
My current hypothesis is that the incorrect rerender is due to naive key
implementation which is based on the index of the object.
My current hypothesis is that the incorrect rerender is due to naive
key
implementation which is based on the index of the object.
Setting random keys doesn't help.
Today's findings from a session with @nikku :
ListGroup.js
// we need to pass the proper (initial) open state when we
// initially render an element
//
// at the same time, we compute the state _only_ in the second PASS
//
// ==> So essentially, by design, we render _once_ with the old state.
// ==> BOOM (!)
I have a bug fix in place that removes the aweful hacks we add in ListGroup
:
To be integration tested (manually) tomorrow.
Turned out, as reported, to be a ListGroup
related issue (old components used for re-rendering against new model).
Fixed upstream via https://github.com/bpmn-io/properties-panel/pull/369.
Closed through https://github.com/camunda/camunda-modeler/pull/4392
Describe the bug
C7 properties panel freezes when template variable assignment is disabled. The error thrown is related to the inputOutput missing unexpectedly, or outputParameter missing unexpectedly if there are more outputs on the element.
Steps to reproduce
Expected behavior
No crash.
Environment
Additional context
This is a regression.
SUPPORT-22412