flowable/flowable-engine · error · ActivitiIllegalArgumentException
OwnerLikeIgnoreCase
Error message
OwnerLikeIgnoreCase
What it means
taskOwnerLikeIgnoreCase(String ownerLikeIgnoreCase) throws ActivitiIllegalArgumentException("OwnerLikeIgnoreCase") when its argument is null. The method lowercases the pattern before storing it to implement case-insensitive matching, and null cannot be lowercased or turned into a LIKE condition. Pass a non-null pattern string.
Source
Thrown at modules/flowable5-engine/src/main/java/org/activiti/engine/impl/TaskQueryImpl.java:436
}
@Override
public TaskQueryImpl taskOwnerLike(String ownerLike) {
if (ownerLike == null) {
throw new ActivitiIllegalArgumentException("Owner is null");
}
if (orActive) {
currentOrQueryObject.ownerLike = ownerLike;
} else {
this.ownerLike = ownerLike;
}
return this;
}
@Override
public TaskQuery taskOwnerLikeIgnoreCase(String ownerLikeIgnoreCase) {
if (ownerLikeIgnoreCase == null) {
throw new ActivitiIllegalArgumentException("OwnerLikeIgnoreCase");
}
if (orActive) {
currentOrQueryObject.ownerLikeIgnoreCase = ownerLikeIgnoreCase.toLowerCase();
} else {
this.ownerLikeIgnoreCase = ownerLikeIgnoreCase.toLowerCase();
}
return this;
}
/**
* @see #taskUnassigned
*/
@Override
@Deprecated
public TaskQuery taskUnnassigned() {
return taskUnassigned();
}
View on GitHub (pinned to d6d39ce1c6)
Solutions
- Guard with a null check before calling, or only add the filter when the value exists
- Lowercase your input yourself only if needed - the method already lowercases it
- Fix the source of the null value (config, request param, variable)
Example fix
// before
query.taskOwnerLikeIgnoreCase(searchForm.getOwner()); // throws when null
// after
if (searchForm.getOwner() != null) {
query.taskOwnerLikeIgnoreCase(searchForm.getOwner());
} Defensive patterns
Strategy: type-guard
Validate before calling
Objects.requireNonNull(ownerLikeIgnoreCase, "ownerLikeIgnoreCase must not be null"); query.taskOwnerLikeIgnoreCase(ownerLikeIgnoreCase);
Type guard
boolean hasIgnoreCasePattern(String p) { return p != null && !p.trim().isEmpty(); } Try / catch
try {
query.taskOwnerLikeIgnoreCase(pattern);
} catch (ActivitiIllegalArgumentException e) {
log.warn("Skipping ignore-case owner filter: {}", e.getMessage());
} Prevention
- Guard optional filter values before calling IgnoreCase variants
- Remember the method lowercases the input; do not pass locale-dependent strings expecting otherwise
- Apply null-guards at the search-form/DTO boundary, not deep in business code
When it happens
Trigger: Calling taskQuery.taskOwnerLikeIgnoreCase(null); often the argument is a computed or user-supplied value that was null at call time.
Common situations: Optional search filters from web forms; configuration keys that were not set; refactoring from taskOwnerLike to the IgnoreCase variant without adding null handling.
Related errors
- Owner is null
- Involved user is null
- Candidate user is null
- Candidate group is null
- Candidate group list is null
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/d5684c58672626e8.
Report an issue: GitHub.