flowable/flowable-engine · warning

Error parsing input entry

Error message

Error parsing input entry

What it means

Warning logged by InputEntryParser.parseChildElement when an exception is thrown while streaming through the <inputEntry> element of a DMN rule (typically XMLStreamException from malformed XML or unexpected EOF). Flowable logs and continues; the resulting RuleInputClauseContainer gets a null (or partial) inputEntry, so that rule cell evaluates as missing at decision time rather than failing deployment.

Solutions

  1. Inspect the attached stack trace for the XMLStreamException and its line/column to locate the bad element.
  2. Escape XML special characters in expressions: use &lt; &gt; &amp; or CDATA instead of raw < and >.
  3. Validate the .dmn file against the DMN XSD before deployment.
  4. Re-export the table from the DMN editor to produce well-formed XML.

Example fix

<!-- before -->
<inputEntry><text>amount > 100</text></inputEntry>
<!-- after -->
<inputEntry><text>amount &gt; 100</text></inputEntry>
Defensive patterns

Strategy: validation

Validate before calling

// ensure expressions are XML-safe before authoring/serializing
String safe = rawExpression
    .replace("<", "&lt;").replace(">", "&gt;").replace("&", "&amp;");

Prevention

When it happens

Trigger: While iterating XMLStreamReader events until the </inputEntry> end element, xtr.next()/getLocalName() etc. throw because the XML is malformed, truncated, or the stream ends unexpectedly.

Common situations: Invalid characters or unescaped operators (e.g. raw '<', '>') inside input entry expressions in .dmn XML; truncated files; DMN XML produced by incompatible exporter versions.

Understand the failure class

Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.

Related errors


AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11). Data as JSON: /api/errors/0eba8ba4394f7a6c. Report an issue: GitHub.

Appendix: source

Thrown at modules/flowable-dmn-xml-converter/src/main/java/org/flowable/dmn/converter/child/InputEntryParser.java:85

                } else if (xtr.isStartElement() && ELEMENT_EXTENSIONS.equals(xtr.getLocalName())) {
                    while (xtr.hasNext()) {
                        xtr.next();
                        if (xtr.isStartElement()) {
                            DmnExtensionElement extensionElement = DmnXMLUtil.parseExtensionElement(xtr);
                            migrateExtensionElement(extensionElement, inputClause);
                            inputEntry.addExtensionElement(extensionElement);
                        } else if (xtr.isEndElement()) {
                            if (ELEMENT_EXTENSIONS.equals(xtr.getLocalName())) {
                                break;
                            }
                        }
                    }
                } else if (xtr.isEndElement() && getElementName().equalsIgnoreCase(xtr.getLocalName())) {
                    readyWithInputEntry = true;
                }
            }
        } catch (Exception e) {
            LOGGER.warn("Error parsing input entry", e);
        }

        RuleInputClauseContainer ruleInputClauseContainer = new RuleInputClauseContainer();
        ruleInputClauseContainer.setInputClause(inputClause);
        ruleInputClauseContainer.setInputEntry(inputEntry);

        rule.addInputEntry(ruleInputClauseContainer);
    }

    protected void migrateExtensionElement(DmnExtensionElement extensionElement, InputClause inputClause) {
        if (extensionElement == null || extensionElement.getElementText() == null || extensionElement.getName() == null || inputClause == null
            || inputClause.getInputExpression() == null) {
            return;
        }
        if (!"operator".equals(extensionElement.getName())) {
            return;
        }

View on GitHub (pinned to d6d39ce1c6)