{"record":{"id":"cff6aad2b8055d9e","repo":"flowable/flowable-engine","slug":"error-parsing-output-values","errorCode":null,"errorMessage":"Error parsing output values","messagePattern":"Error parsing output values","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"modules/flowable-dmn-xml-converter/src/main/java/org/flowable/dmn/converter/child/OutputValuesParser.java","lineNumber":54,"sourceCode":"        }\n\n        UnaryTests outputValues = new UnaryTests();\n\n        boolean readyWithOutputValues = false;\n        try {\n            while (!readyWithOutputValues && xtr.hasNext()) {\n                xtr.next();\n                if (xtr.isStartElement() && ELEMENT_TEXT.equalsIgnoreCase(xtr.getLocalName())) {\n                    String outputValuesText = xtr.getElementText();\n                    outputValues.setText(outputValuesText);\n\n                    outputValues.setTextValues(splitAndFormatInputOutputValues(outputValuesText));\n                } else if (xtr.isEndElement() && getElementName().equalsIgnoreCase(xtr.getLocalName())) {\n                    readyWithOutputValues = true;\n                }\n            }\n        } catch (Exception e) {\n            LOGGER.warn(\"Error parsing output values\", e);\n        }\n\n        clause.setOutputValues(outputValues);\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/OutputValuesParser.java#L36-L60","documentation":"Warning logged by OutputValuesParser.parseChildElement when an exception occurs while parsing the <outputValues> element (allowed output values) of a DMN output clause, including failures inside splitAndFormatInputOutputValues. The exception is swallowed; the clause is left with null/partial outputValues, so validation of rule output entries against the allowed list is silently skipped for that column.","triggerScenarios":"Parsing the comma-separated values inside <outputValues><text>...</text></outputValues> — the XMLStreamReader throws (malformed XML) or the text-splitting/formatting logic fails (unexpected empty or non-list content) before the </outputValues> end element.","commonSituations":"Hand-edited .dmn with empty or oddly formatted output value lists; exporter writing values in an unexpected layout; corrupted/truncated files.","solutions":["Read the attached stack trace to see whether it was an XML error or a split/format failure.","Ensure values are a comma-separated list in <text>, e.g. <text>\"low\",\"medium\",\"high\"</text>, and the element is properly closed.","Validate the .dmn against the DMN XSD before deployment.","Re-export the table from the DMN tool to regenerate standard XML."],"exampleFix":"<!-- before -->\n<outputValues><text>low; medium; high</text></outputValues> <!-- wrong separator/format -->\n<!-- after -->\n<outputValues><text>\"low\",\"medium\",\"high\"</text></outputValues>","handlingStrategy":"validation","validationCode":"// validate outputValues list format before deployment\nString text = outputValuesText.trim();\nif (!text.matches(\"^(\\\"[^\\\"]*\\\"|[^,\\\"]+)(\\s*,\\s*(\\\"[^\\\"]*\\\"|[^,\\\"]+))*$\")) {\n  throw new IllegalArgumentException(\"outputValues must be comma-separated: \" + text);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Author output values as comma-separated quoted strings inside <text>","XSD-validate .dmn resources in CI","Confirm clause.getOutputValues() is populated after conversion if you rely on output validation","Regenerate the file from the DMN modeling tool after manual edits"],"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-18T11:17:12.947Z"}