{"record":{"id":"7ef5093a36329b30","repo":"flowable/flowable-engine","slug":"error-parsing-input-expression-7ef509","errorCode":null,"errorMessage":"Error parsing input expression","messagePattern":"Error parsing input expression","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"modules/flowable-dmn-xml-converter/src/main/java/org/flowable/dmn/converter/child/InputExpressionParser.java","lineNumber":54,"sourceCode":"        }\n\n        LiteralExpression inputExpression = new LiteralExpression();\n        inputExpression.setId(xtr.getAttributeValue(null, ATTRIBUTE_ID));\n        inputExpression.setTypeRef(xtr.getAttributeValue(null, ATTRIBUTE_TYPE_REF));\n\n        boolean readyWithInputExpression = false;\n        try {\n            while (!readyWithInputExpression && xtr.hasNext()) {\n                xtr.next();\n                if (xtr.isStartElement() && ELEMENT_TEXT.equalsIgnoreCase(xtr.getLocalName())) {\n                    inputExpression.setText(xtr.getElementText());\n\n                } else if (xtr.isEndElement() && getElementName().equalsIgnoreCase(xtr.getLocalName())) {\n                    readyWithInputExpression = true;\n                }\n            }\n        } catch (Exception e) {\n            LOGGER.warn(\"Error parsing input expression\", e);\n        }\n\n        clause.setInputExpression(inputExpression);\n    }\n}\n","sourceCodeStart":36,"sourceCodeEnd":60,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-dmn-xml-converter/src/main/java/org/flowable/dmn/converter/child/InputExpressionParser.java#L36-L60","documentation":"Warning logged by InputExpressionParser.parseChildElement when an exception occurs while reading the <inputExpression> child of a DMN <input> clause (typeRef, text, etc.). The parser swallows the exception and the clause is left with a null inputExpression, meaning the decision table column has no expression and will not evaluate correctly, while the model still parses.","triggerScenarios":"parseChildElements dispatches to InputExpressionParser; the XMLStreamReader throws (malformed XML, unexpected element nesting, premature EOF) while scanning until the matching </inputExpression> end element.","commonSituations":"Malformed <input> blocks in hand-edited .dmn files; vendor-exported DMN with unexpected nesting inside inputExpression; encoding/truncation problems in the resource file.","solutions":["Read the attached stack trace to pinpoint the XML error location.","Validate the .dmn against the DMN XSD and fix the malformed inputExpression block.","Re-export the decision table from the DMN modeling tool.","Consider strict parsing (rethrow) so broken models fail at deployment time."],"exampleFix":"// before: nested/wrong element\n<input>\n  <inputExpression typeRef=\"string\"><text>...</invalid></inputExpression>\n</input>\n// after\n<input>\n  <inputExpression typeRef=\"string\"><text>invoiceType</text></inputExpression>\n</input>","handlingStrategy":"validation","validationCode":"// assert each input clause carries an inputExpression after load\nDmnDecision d = dmnRepository.createDecisionQuery().decisionKey(key).singleResult();\n// or statically: every <dmn:input> must contain exactly one <dmn:inputExpression>","typeGuard":null,"tryCatchPattern":null,"preventionTips":["XSD-validate DMN files before deployment","After model conversion, verify clause.getInputExpression() is non-null for every input","Avoid vendor-specific exporters that nest inputExpression differently; use DMN 1.1-compatible output","Treat this warning as a blocker, not noise"],"tags":["flowable","dmn","xml-parsing"],"backgroundTag":"schema-validation-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"}