flowable/flowable-engine · warning
Could not parse to Integer, Long, Float or Double from
Error message
Could not parse to Integer, Long, Float or Double from: {} What it means
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.
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.
Example fix
// before (DMN cell) <text>12,5</text> // after <text>12.5</text>
Defensive patterns
Strategy: validation
Validate before calling
boolean isNumeric(String s) { return s != null && s.trim().matches("-?\\d+(\\.\\d+)?"); } Prevention
- Use dot decimal notation, never locale commas
- Trim whitespace in decision-table cells
- Validate numeric cells in CI by parsing the DMN XML
When it happens
Trigger: 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.
Common situations: 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.
Understand the failure class
Background: "Invalid ... format", "must be in format X", "does not look like a ..." — invalid argument format errors across CLI tools and libraries — this error's family across 17 libraries.
Related errors
- Could not parse to Long or Double from
- Cannot parse EL property
- Error processing DMN document
- Json Node is not supported
- Using Joda-Time LocalDate has been deprecated and will be…
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/bcd0b10ce1518253.
Report an issue: GitHub.
Appendix: source
Thrown at modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/el/util/DMNParseUtil.java:166
}
}
protected static Object getNumberValue(String value, Class<?> targetType) {
Object returnValue = null;
try {
if (Integer.class.equals(targetType)) {
returnValue = Integer.valueOf(value);
} else if (Long.class.equals(targetType)) {
returnValue = Long.valueOf(value);
} else if (Float.class.equals(targetType)) {
returnValue = Float.valueOf(value);
} else if (BigInteger.class.equals(targetType)) {
returnValue = new BigInteger(value);
} else { // Default case Double
returnValue = Double.valueOf(value);
}
} catch (NumberFormatException nfe) {
LOGGER.warn("Could not parse to Integer, Long, Float or Double from: {}", value);
}
return returnValue;
}
protected static Object getNumberValue(String value) {
try {
return Long.parseLong(value);
} catch (NumberFormatException nfe1) {
try {
return Double.parseDouble(value);
} catch (NumberFormatException nfe2) {
LOGGER.warn("Could not parse to Long or Double from: {}", value);
return null;
}
}
}
View on GitHub (pinned to d6d39ce1c6)