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
- Only invoke decisionNameLike with a non-null pattern.
- Skip the filter when no search term is present.
- 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
- Reject or ignore blank search input at the API boundary
- Build wildcard patterns in one guarded helper method
- Test query construction with null/empty inputs
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.