{"record":{"id":"bcd0b10ce1518253","repo":"flowable/flowable-engine","slug":"could-not-parse-to-integer-long-float-or-double","errorCode":null,"errorMessage":"Could not parse to Integer, Long, Float or Double from: {}","messagePattern":"Could not parse to Integer, Long, Float or Double from: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/el/util/DMNParseUtil.java","lineNumber":166,"sourceCode":"        }\n    }\n\n    protected static Object getNumberValue(String value, Class<?> targetType) {\n        Object returnValue = null;\n        try {\n            if (Integer.class.equals(targetType)) {\n                returnValue = Integer.valueOf(value);\n            } else if (Long.class.equals(targetType)) {\n                returnValue = Long.valueOf(value);\n            } else if (Float.class.equals(targetType)) {\n                returnValue = Float.valueOf(value);\n            } else if (BigInteger.class.equals(targetType)) {\n                returnValue = new BigInteger(value);\n            } else { // Default case Double\n                returnValue = Double.valueOf(value);\n            }\n        } catch (NumberFormatException nfe) {\n            LOGGER.warn(\"Could not parse to Integer, Long, Float or Double from: {}\", value);\n        }\n\n        return returnValue;\n    }\n\n    protected static Object getNumberValue(String value) {\n        try {\n            return Long.parseLong(value);\n        } catch (NumberFormatException nfe1) {\n            try {\n                return Double.parseDouble(value);\n            } catch (NumberFormatException nfe2) {\n                LOGGER.warn(\"Could not parse to Long or Double from: {}\", value);\n                return null;\n            }\n        }\n    }\n","sourceCodeStart":148,"sourceCodeEnd":184,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/el/util/DMNParseUtil.java#L148-L184","documentation":"A WARN from DMNParseUtil.getNumberValue: a numeric DMN cell value could not be parsed to Integer, Long, Float, Double or BigInteger (NumberFormatException caught). The method returns null for that element, so the rule evaluates with a missing value rather than failing.","triggerScenarios":"A DMN collection cell whose target type is a numeric class contains a non-numeric string such as \"12,5\", \"1 000\", \"\", or \"12a\" when parsed by formatElementValue.","commonSituations":"Locale-specific number formatting (comma decimal separator) in decision tables; whitespace or thousands separators in cell values; typos in numeric literal lists for hit policies.","solutions":["Fix the cell value to use dot decimal notation and no grouping separators (e.g. 12.5 not 12,5).","Strip whitespace from values in the decision table XML.","Verify the declared input/collection type matches the data actually supplied.","If data comes from an external source, validate/normalize numerics before passing them into DMN execution."],"exampleFix":"// before (DMN cell)\n<text>12,5</text>\n// after\n<text>12.5</text>","handlingStrategy":"validation","validationCode":"boolean isNumeric(String s) { return s != null && s.trim().matches(\"-?\\\\d+(\\\\.\\\\d+)?\"); }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use dot decimal notation, never locale commas","Trim whitespace in decision-table cells","Validate numeric cells in CI by parsing the DMN XML"],"tags":["dmn","parsing","number-format","collection"],"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-18T11:17:12.947Z"}