Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-3205

Xml Model API does not sync DOM Access

    XMLWordPrintable

    Details

      Description

      Problem Description:

      • the dom implementation (Apache Xerxes) is not thread safe, even for read only access. See also [1]
      • camunda engine provides API which allows multiple threads to access the same model element instance.

      => Exceptions related to concurrent access of Dom Implementation classes.

      Example:

      Caused by: java.lang.NullPointerException
      at org.apache.xerces.dom.ParentNode.nodeListGetLength(Unknown Source)
      at org.apache.xerces.dom.ParentNode.getLength(Unknown Source)
      at org.camunda.bpm.model.xml.impl.util.DomUtil.filterNodeList(DomUtil.java:135)
      at org.camunda.bpm.model.xml.impl.util.DomUtil.filterNodeListForElements(DomUtil.java:153)
      at org.camunda.bpm.model.xml.impl.instance.DomElementImpl.getChildElements(DomElementImpl.java:91)
      at org.camunda.bpm.model.bpmn.impl.instance.ExtensionElementsImpl.getElements(ExtensionElementsImpl.java:56)
      at org.camunda.bpm.model.bpmn.impl.instance.ExtensionElementsImpl.getElementsQuery(ExtensionElementsImpl.java:60)

      Workarounds:

      • synchronize Model API access

      [1] http://xerces.apache.org/xerces2-j/faq-dom.html#faq-1

        Attachments

          Activity

            People

            Assignee:
            sebastian.menski Sebastian Menski
            Reporter:
            meyer Daniel Meyer
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: