Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-5358

Non escaped characters (&, <, >) in CDATA section in BPMN2 result in invalid SVG file being generated

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 7.0.0.Beta3
    • jBPM 6.4.0.Final
    • Designer
    • None
    • NEW
    • NEW
    • Hide

      1) Import the BPMN2 snippet in the designer.
      2) Save the BPMN2 file and have the designer auto-generate the SVG on save.
      3) Grab the SVG file (e.g. git clone the repo from Business Central.
      4) Open the SVG file in a browser.

      Show
      1) Import the BPMN2 snippet in the designer. 2) Save the BPMN2 file and have the designer auto-generate the SVG on save. 3) Grab the SVG file (e.g. git clone the repo from Business Central. 4) Open the SVG file in a browser.

    Description

      The following BPMN2 file uses an unescaped "&" character in one of the element names. This character is defined in a CDATA section, which is valid XML. The SVG that is generated from this BPMN2 file by the designer is actually invalid as it fails to escape the "&" character.

      BPMN2 file:

      <?xml version="1.0" encoding="UTF-8"?>
      <bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.omg.org/bpmn20" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:color="http://www.omg.org/spec/BPMN/non-normative/color" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" id="_ZxTcIIsAEeaXxvfGAembYw" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www.bpsim.org/schemas/1.0 bpsim.xsd" exporter="jBPM Designer" exporterVersion="6.2.0" expressionLanguage="http://www.mvel.org/2.0" targetNamespace="http://www.omg.org/bpmn20" typeLanguage="http://www.java.com/javaTypes">
        <bpmn2:process id="demobbc.test-process" drools:packageName="org.jbpm" drools:version="1.0" name="test-process" isExecutable="true">
          <bpmn2:startEvent id="processStartEvent" drools:selectable="true" color:background-color="#9acd32" color:border-color="#000000" color:color="#000000" name="">
            <bpmn2:extensionElements>
              <drools:metaData name="elementname">
                <drools:metaValue><![CDATA[]]></drools:metaValue>
              </drools:metaData>
            </bpmn2:extensionElements>
            <bpmn2:outgoing>_13F12F06-69EA-4903-89AB-91F0DFFB0EFE</bpmn2:outgoing>
          </bpmn2:startEvent>
          <bpmn2:scriptTask id="_779C646C-F91E-4978-BAA8-CD2C647FD214" drools:selectable="true" color:background-color="#fafad2" color:border-color="#000000" color:color="#000000" name="Test &amp; Test" scriptFormat="http://www.java.com/java">
            <bpmn2:extensionElements>
              <drools:metaData name="elementname">
                <drools:metaValue><![CDATA[Test & Test]]></drools:metaValue>
              </drools:metaData>
            </bpmn2:extensionElements>
            <bpmn2:incoming>_13F12F06-69EA-4903-89AB-91F0DFFB0EFE</bpmn2:incoming>
            <bpmn2:outgoing>_B963E7F2-7958-4F13-BB1A-88329368533D</bpmn2:outgoing>
            <bpmn2:script><![CDATA[System.out.println("Test");]]></bpmn2:script>
          </bpmn2:scriptTask>
          <bpmn2:sequenceFlow id="_13F12F06-69EA-4903-89AB-91F0DFFB0EFE" drools:selectable="true" color:background-color="#000000" color:border-color="#000000" color:color="#000000" sourceRef="processStartEvent" targetRef="_779C646C-F91E-4978-BAA8-CD2C647FD214"/>
          <bpmn2:endEvent id="_3F01D710-585F-45E0-AF47-EA9A1D470883" drools:selectable="true" color:background-color="#ff6347" color:border-color="#000000" color:color="#000000" name="">
            <bpmn2:extensionElements>
              <drools:metaData name="elementname">
                <drools:metaValue><![CDATA[]]></drools:metaValue>
              </drools:metaData>
            </bpmn2:extensionElements>
            <bpmn2:incoming>_B963E7F2-7958-4F13-BB1A-88329368533D</bpmn2:incoming>
          </bpmn2:endEvent>
          <bpmn2:sequenceFlow id="_B963E7F2-7958-4F13-BB1A-88329368533D" drools:selectable="true" color:background-color="#000000" color:border-color="#000000" color:color="#000000" sourceRef="_779C646C-F91E-4978-BAA8-CD2C647FD214" targetRef="_3F01D710-585F-45E0-AF47-EA9A1D470883"/>
        </bpmn2:process>
        <bpmndi:BPMNDiagram id="_ZxTcIYsAEeaXxvfGAembYw">
          <bpmndi:BPMNPlane id="_ZxTcIosAEeaXxvfGAembYw" bpmnElement="demobbc.test-process">
            <bpmndi:BPMNShape id="_ZxTcI4sAEeaXxvfGAembYw" bpmnElement="processStartEvent">
              <dc:Bounds height="30.0" width="30.0" x="120.0" y="165.0"/>
            </bpmndi:BPMNShape>
            <bpmndi:BPMNShape id="_ZxTcJIsAEeaXxvfGAembYw" bpmnElement="_779C646C-F91E-4978-BAA8-CD2C647FD214">
              <dc:Bounds height="80.0" width="100.0" x="330.0" y="140.0"/>
            </bpmndi:BPMNShape>
            <bpmndi:BPMNEdge id="_ZxTcJYsAEeaXxvfGAembYw" bpmnElement="_13F12F06-69EA-4903-89AB-91F0DFFB0EFE" sourceElement="_ZxTcI4sAEeaXxvfGAembYw" targetElement="_ZxTcJIsAEeaXxvfGAembYw">
              <di:waypoint xsi:type="dc:Point" x="135.0" y="180.0"/>
              <di:waypoint xsi:type="dc:Point" x="380.0" y="180.0"/>
            </bpmndi:BPMNEdge>
            <bpmndi:BPMNShape id="_ZxTcJosAEeaXxvfGAembYw" bpmnElement="_3F01D710-585F-45E0-AF47-EA9A1D470883">
              <dc:Bounds height="28.0" width="28.0" x="529.0" y="166.0"/>
            </bpmndi:BPMNShape>
            <bpmndi:BPMNEdge id="_ZxTcJ4sAEeaXxvfGAembYw" bpmnElement="_B963E7F2-7958-4F13-BB1A-88329368533D" sourceElement="_ZxTcJIsAEeaXxvfGAembYw" targetElement="_ZxTcJosAEeaXxvfGAembYw">
              <di:waypoint xsi:type="dc:Point" x="380.0" y="180.0"/>
              <di:waypoint xsi:type="dc:Point" x="543.0" y="180.0"/>
            </bpmndi:BPMNEdge>
          </bpmndi:BPMNPlane>
        </bpmndi:BPMNDiagram>
        <bpmn2:relationship id="_ZxTcKIsAEeaXxvfGAembYw" type="BPSimData">
          <bpmn2:extensionElements>
            <bpsim:BPSimData>
              <bpsim:Scenario xsi:type="bpsim:Scenario" id="default" name="Simulationscenario">
                <bpsim:ScenarioParameters xsi:type="bpsim:ScenarioParameters" baseTimeUnit="min"/>
                <bpsim:ElementParameters xsi:type="bpsim:ElementParameters" elementRef="_B963E7F2-7958-4F13-BB1A-88329368533D" id="_ZxTcKYsAEeaXxvfGAembYw">
                  <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
                    <bpsim:Probability xsi:type="bpsim:Parameter">
                      <bpsim:FloatingParameter value="100.0"/>
                    </bpsim:Probability>
                  </bpsim:ControlParameters>
                </bpsim:ElementParameters>
                <bpsim:ElementParameters xsi:type="bpsim:ElementParameters" elementRef="_779C646C-F91E-4978-BAA8-CD2C647FD214" id="_ZxTcKosAEeaXxvfGAembYw">
                  <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
                    <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
                      <bpsim:UniformDistribution max="10.0" min="5.0"/>
                    </bpsim:ProcessingTime>
                  </bpsim:TimeParameters>
                  <bpsim:CostParameters xsi:type="bpsim:CostParameters">
                    <bpsim:UnitCost xsi:type="bpsim:Parameter">
                      <bpsim:FloatingParameter value="0.0"/>
                    </bpsim:UnitCost>
                  </bpsim:CostParameters>
                </bpsim:ElementParameters>
                <bpsim:ElementParameters xsi:type="bpsim:ElementParameters" elementRef="_13F12F06-69EA-4903-89AB-91F0DFFB0EFE" id="_ZxTcK4sAEeaXxvfGAembYw">
                  <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
                    <bpsim:Probability xsi:type="bpsim:Parameter">
                      <bpsim:FloatingParameter value="100.0"/>
                    </bpsim:Probability>
                  </bpsim:ControlParameters>
                </bpsim:ElementParameters>
                <bpsim:ElementParameters xsi:type="bpsim:ElementParameters" elementRef="processStartEvent" id="_ZxTcLIsAEeaXxvfGAembYw">
                  <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
                    <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
                      <bpsim:UniformDistribution max="10.0" min="5.0"/>
                    </bpsim:ProcessingTime>
                  </bpsim:TimeParameters>
                  <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
                    <bpsim:Probability xsi:type="bpsim:Parameter">
                      <bpsim:FloatingParameter value="100.0"/>
                    </bpsim:Probability>
                  </bpsim:ControlParameters>
                </bpsim:ElementParameters>
                <bpsim:ElementParameters xsi:type="bpsim:ElementParameters" elementRef="_3F01D710-585F-45E0-AF47-EA9A1D470883" id="_ZxTcLYsAEeaXxvfGAembYw">
                  <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
                    <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
                      <bpsim:UniformDistribution max="10.0" min="5.0"/>
                    </bpsim:ProcessingTime>
                  </bpsim:TimeParameters>
                </bpsim:ElementParameters>
              </bpsim:Scenario>
            </bpsim:BPSimData>
          </bpmn2:extensionElements>
          <bpmn2:source>_ZxTcIIsAEeaXxvfGAembYw</bpmn2:source>
          <bpmn2:target>_ZxTcIIsAEeaXxvfGAembYw</bpmn2:target>
        </bpmn2:relationship>
      </bpmn2:definitions>
      

      Attachments

        Issue Links

          Activity

            People

              rhn-support-tsurdilo Tihomir Surdilovic (Inactive)
              rhn-gps-ddoyle Duncan Doyle (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: