bpmn-io / bpmnlint

Validate BPMN diagrams based on configurable lint rules.
MIT License
125 stars 37 forks source link

`no-overlapping-elements` Rule Produces Error When Using Collapsed Subprocess With Data Object Reference #133

Closed philippfromme closed 4 months ago

philippfromme commented 5 months ago

Describe the Bug

Modeling the following diagram will result in an error produced by the no-overlapping-elements rule.

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:modeler="http://camunda.org/schema/modeler/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Web Modeler" exporterVersion="2e3ddd0" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.5.0" camunda:diagramRelationId="203800ac-7cd5-41a9-9ca9-e7bebf6db476">
  <bpmn:process id="Process_1" isExecutable="true">
    <bpmn:subProcess id="Subprocess_1">
      <bpmn:dataObjectReference id="DataObjectReference_1" dataObjectRef="DataObject_03l91qi" />
      <bpmn:dataObject id="DataObject_03l91qi" />
    </bpmn:subProcess>
  </bpmn:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
      <bpmndi:BPMNShape id="Activity_0f2q80d_di" bpmnElement="Subprocess_1">
        <dc:Bounds x="160" y="78" width="100" height="80" />
        <bpmndi:BPMNLabel />
      </bpmndi:BPMNShape>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
  <bpmndi:BPMNDiagram id="BPMNDiagram_06lehem">
    <bpmndi:BPMNPlane id="BPMNPlane_0dasf4f" bpmnElement="Subprocess_1">
      <bpmndi:BPMNShape id="DataObjectReference_0r9j7hc_di" bpmnElement="DataObjectReference_1">
        <dc:Bounds x="152" y="85" width="36" height="50" />
      </bpmndi:BPMNShape>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>

The error:

rule <no-overlapping-elements> failed with error:  TypeError: Cannot read properties of undefined (reading 'bounds')
    at no-overlapping-elements.js:70:47

Steps to Reproduce

  1. Lint the given process
  2. no-overlapping-elements rule produces error

Expected Behavior

No error.

Environment

barmac commented 5 months ago

I can reproduce this.