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.

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)

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.