Details
Description
Reproduce:
- Deploy a process where not all elements have DI information. One example would be a process where the elements within a subprocess should not be displayed.
- Start an instance of this process
- Go to any Cockpit view that displays the process and adds overlays to diagram elements, e.g. process instance statistics or modification
Expected:
- All elements that are displayed have their overlays
Observed:
- Only elements that are defined in the xml before the first element without DI information have overlays
Hint:
- The diagram plugin point that is responsible to add overlays does not check if the visual element exists before trying to add an overlay, causing an "invalid element specified" error in the overlays.add method: see [1] - [6]
[1]: https://github.com/camunda/camunda-bpm-webapp/blob/b1c8aade6afe238dce999ab0a90c2eb4eb6f8b27/ui/cockpit/plugins/jobDefinition/app/views/processDefinition/diagramPlugins/jobSuspension.js#L41
[2]: https://github.com/camunda/camunda-bpm-webapp/blob/b1c8aade6afe238dce999ab0a90c2eb4eb6f8b27/ui/cockpit/plugins/base/app/views/common/diagramPlugins/instanceCount.js#L28
[3]: https://github.com/camunda/camunda-bpm-webapp/blob/cb64ded8a2fdf8c03219d1bc2a8e1a5537af3cb8/ui/cockpit/client/scripts/components/callActivityOverlay/index.js#L133
[4]: https://github.com/camunda/camunda-bpm-platform-ee/blob/5294e60c4214ab544f1adedf2126d59d85201c83/webapps/camunda-webapp/plugins/src/main/resources-plugin/cockpit/modification/app/diagramPlugins/modificationService.js
[5]: https://github.com/camunda/camunda-bpm-platform-ee/blob/146a4a89f0112054355f781bf465fbd43e7c9b3d/webapps/camunda-webapp/plugins/src/main/resources-plugin/cockpit/history/app/views/processInstance/diagramPlugins/stats.js#L51-L73
[6]: https://github.com/camunda/camunda-bpm-platform-ee/blob/146a4a89f0112054355f781bf465fbd43e7c9b3d/webapps/camunda-webapp/plugins/src/main/resources-plugin/cockpit/history/app/views/processDefinition/diagramPlugins/stats.js#L55-L77