{"record":{"id":"826dcfe72c705ccb","repo":"flowable/flowable-engine","slug":"error-processing-cmmn-document","errorCode":null,"errorMessage":"Error processing CMMN document","messagePattern":"Error processing CMMN document","errorType":"exception","errorClass":"XMLException","httpStatus":null,"severity":"error","filePath":"modules/flowable-cmmn-converter/src/main/java/org/flowable/cmmn/converter/CmmnDiExtensionXmlConverter.java","lineNumber":77,"sourceCode":"                            graphicInfo.setY(Double.valueOf(xtr.getAttributeValue(null, CmmnXmlConstants.ATTRIBUTE_DI_Y)));\n                            if (\"source\".equals(type)) {\n                                edgeInfo.setSourceDockerInfo(graphicInfo);\n                            } else {\n                                edgeInfo.setTargetDockerInfo(graphicInfo);\n                            }\n                        }\n                    }\n\n                } else if (xtr.isEndElement()) {\n                    if (CmmnXmlConstants.ELEMENT_DI_EXTENSION.equalsIgnoreCase(xtr.getLocalName())) {\n                        readyWithChildElements = true;\n                    }\n                }\n\n            }\n        } catch (Exception ex) {\n            LOGGER.error(\"Error processing CMMN document\", ex);\n            throw new XMLException(\"Error processing CMMN document\", ex);\n        }\n\n        return null;\n    }\n    \n}","sourceCodeStart":59,"sourceCodeEnd":83,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cmmn-converter/src/main/java/org/flowable/cmmn/converter/CmmnDiExtensionXmlConverter.java#L59-L83","documentation":"CmmnDiExtensionXmlConverter processes the DI (diagram interchange) extension of a CMMN document. Any exception during that processing is logged and rethrown as XMLException 'Error processing CMMN document', so the actual failure is always in the cause.","triggerScenarios":"Converting a CMMN file whose DI extension section (CMMNDI, shapes/bounds/edges) contains malformed data or references, causing any runtime exception inside the converter's processing loop.","commonSituations":"DI coordinates referencing non-existent shape IDs; broken or hand-edited diagram sections; exporter bugs writing inconsistent DI data; corrupted files.","solutions":["Inspect the cause exception logged with 'Error processing CMMN document' for the exact problem","Correct or remove the DI/diagram section from the CMMN XML and re-export diagrams from the modeler","Validate the document against the CMMN 1.1 XSD","Re-generate the file with a supported CMMN exporter version"],"exampleFix":"// before (XML)\n<CMMNShape cmmnElementRef=\"missingId\" .../>\n// after\n<CMMNShape cmmnElementRef=\"planItem_1\" .../> <!-- ref an existing element -->","handlingStrategy":"validation","validationCode":"// verify DI shape refs point to existing elements before conversion\nSet<String> ids = collectAllElementIds(cmmnDoc);\nfor (CMMNShape s : diShapes) {\n    if (!ids.contains(s.getCmmnElementRef())) throw new IllegalArgumentException(\"DI shape refs unknown element \" + s.getCmmnElementRef());\n}","typeGuard":null,"tryCatchPattern":"try { converter.convertToCmmnModel(provider); } catch (XMLException e) { log.error(\"CMMN DI processing failed\", e.getCause()); throw new DeploymentException(\"Invalid CMMN DI section\", e); }","preventionTips":["Always inspect the cause of XMLException 'Error processing CMMN document'","Keep the DI section consistent with model element IDs","Re-export diagrams from the modeler instead of editing DI by hand","Validate against the CMMN 1.1 XSD"],"tags":["cmmn","xml-converter","di","parsing"],"backgroundTag":"invalid-argument-format","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}