{"record":{"id":"5bd231daf53a8e3d","repo":"flowable/flowable-engine","slug":"error-converting-process-reference-expression","errorCode":null,"errorMessage":"Error converting process reference expression","messagePattern":"Error converting process reference expression","errorType":"exception","errorClass":"FlowableException","httpStatus":null,"severity":"error","filePath":"modules/flowable-cmmn-converter/src/main/java/org/flowable/cmmn/converter/ProcessRefExpressionXmlConverter.java","lineNumber":46,"sourceCode":"    @Override\n    public String getXMLElementName() {\n        return CmmnXmlConstants.ELEMENT_PROCESS_REF_EXPRESSION;\n    }\n    \n    @Override\n    public boolean hasChildElements() {\n        return false;\n    }\n\n    @Override\n    protected CmmnElement convert(XMLStreamReader xtr, ConversionHelper conversionHelper) {\n        try {\n            String expression = xtr.getElementText();\n            if (StringUtils.isNotEmpty(expression) && conversionHelper.getCurrentCmmnElement() instanceof ProcessTask processTask) {\n                processTask.setProcessRefExpression(expression);\n            }\n        } catch (XMLStreamException e) {\n            throw new FlowableException(\"Error converting process reference expression\", e);\n        }\n        return null;\n    }\n    \n}\n","sourceCodeStart":28,"sourceCodeEnd":52,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cmmn-converter/src/main/java/org/flowable/cmmn/converter/ProcessRefExpressionXmlConverter.java#L28-L52","documentation":"Thrown while converting a CMMN <processRefExpression> element when the StAX reader fails to read the element text (XMLStreamException). The converter sets the expression on a ProcessTask; a broken or unreadable XML element aborts conversion with this wrapped FlowableException.","triggerScenarios":"Parsing a CMMN model containing a <processRefExpression> child of a process task where the element text cannot be read due to malformed XML (unclosed tags, invalid characters, encoding issues).","commonSituations":"Hand-edited CMMN XML; XML generated with invalid characters; file encoding mismatch (e.g. UTF-16 file read as UTF-8).","solutions":["Validate the CMMN XML file and repair the <processRefExpression> element.","Inspect e.getCause() for the exact XMLStreamException location.","Ensure the expression element is well-formed, e.g. <processRefExpression>${someExpression}</processRefExpression>.","Re-export the diagram from the modeler."],"exampleFix":"// before\n<processRefExpression>${proc\n// after\n<processRefExpression>${processVariable}</processRefExpression>","handlingStrategy":"try-catch","validationCode":"// Validate XML well-formedness before conversion\njavax.xml.validation.Validator v = schema.newValidator();\nv.validate(new StreamSource(new File(cmmnPath)));","typeGuard":null,"tryCatchPattern":"try {\n    CmmnModel model = converter.convertToCmmnModel(in);\n} catch (FlowableException e) {\n    throw new IllegalStateException(\"CMMN XML invalid at processRefExpression: \" + e.getCause(), e);\n}","preventionTips":["Schema-validate CMMN XML files before deployment","Avoid copying expressions from rich-text editors (invisible characters)","Keep XML files UTF-8 encoded"],"tags":["cmmn","xml-parsing","expression"],"backgroundTag":"file-read-failed","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}