flowable/flowable-engine · warning · FlowableIllegalArgumentException

nameLike is null

Error message

nameLike is null

What it means

Fluent-setter validation in DecisionQueryImpl.decisionNameLike: the LIKE pattern for the decision name is null and is rejected by the query builder before any SQL is generated.

Source

Thrown at modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/impl/DecisionQueryImpl.java:124

            throw new FlowableIllegalArgumentException("categoryNotEquals is null");
        }
        this.categoryNotEquals = categoryNotEquals;
        return this;
    }

    @Override
    public DecisionQueryImpl decisionName(String name) {
        if (name == null) {
            throw new FlowableIllegalArgumentException("name is null");
        }
        this.name = name;
        return this;
    }

    @Override
    public DecisionQueryImpl decisionNameLike(String nameLike) {
        if (nameLike == null) {
            throw new FlowableIllegalArgumentException("nameLike is null");
        }
        this.nameLike = nameLike;
        return this;
    }

    @Override
    public DecisionQueryImpl deploymentId(String deploymentId) {
        if (deploymentId == null) {
            throw new FlowableIllegalArgumentException("id is null");
        }
        this.deploymentId = deploymentId;
        return this;
    }

    @Override
    public DecisionQueryImpl deploymentIds(Set<String> deploymentIds) {
        if (deploymentIds == null) {
            throw new FlowableIllegalArgumentException("ids are null");

View on GitHub (pinned to d6d39ce1c6)

Solutions

  1. Only invoke decisionNameLike with a non-null pattern.
  2. Skip the filter when no search term is present.
  3. Trim/normalize the input and fall back to no filter when blank.

Example fix

// before
String term = request.getSearch();
query.decisionNameLike("%" + term + "%"); // term null

// after
String term = request.getSearch();
if (term != null && !term.isBlank()) {
    query.decisionNameLike("%" + term + "%");
}
Defensive patterns

Strategy: validation

Validate before calling

if (nameLike != null && !nameLike.isBlank()) { query.decisionNameLike("%" + nameLike.trim() + "%"); }

Type guard

boolean hasSearchTerm = (nameLike instanceof String s) && !s.isBlank();

Try / catch

try {
    query.decisionNameLike(pattern);
} catch (FlowableIllegalArgumentException e) {
    // run query without the name filter
}

Prevention

When it happens

Trigger: Calling decisionNameLike(pattern) where the pattern variable is null, e.g. "%" + null-derived input.

Common situations: Search-as-you-type UIs sending empty/null search terms; optional filters built from absent request parameters.

Related errors


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