{"record":{"id":"db5e93f3e4ea7304","repo":"flowable/flowable-engine","slug":"name-is-null-db5e93","errorCode":null,"errorMessage":"name is null","messagePattern":"name is null","errorType":"validation","errorClass":"FlowableIllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/repository/CaseDefinitionQueryImpl.java","lineNumber":123,"sourceCode":"            throw new FlowableIllegalArgumentException(\"categoryLike is null\");\n        }\n        this.categoryLike = categoryLike;\n        return this;\n    }\n\n    @Override\n    public CaseDefinitionQueryImpl caseDefinitionCategoryNotEquals(String categoryNotEquals) {\n        if (categoryNotEquals == null) {\n            throw new FlowableIllegalArgumentException(\"categoryNotEquals is null\");\n        }\n        this.categoryNotEquals = categoryNotEquals;\n        return this;\n    }\n\n    @Override\n    public CaseDefinitionQueryImpl caseDefinitionName(String name) {\n        if (name == null) {\n            throw new FlowableIllegalArgumentException(\"name is null\");\n        }\n        this.name = name;\n        return this;\n    }\n\n    @Override\n    public CaseDefinitionQueryImpl caseDefinitionNameLike(String nameLike) {\n        if (nameLike == null) {\n            throw new FlowableIllegalArgumentException(\"nameLike is null\");\n        }\n        this.nameLike = nameLike;\n        return this;\n    }\n\n    @Override\n    public CaseDefinitionQueryImpl caseDefinitionNameLikeIgnoreCase(String nameLikeIgnoreCase) {\n        if (nameLikeIgnoreCase == null) {\n            throw new FlowableIllegalArgumentException(\"nameLikeIgnoreCase is null\");","sourceCodeStart":105,"sourceCodeEnd":141,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/repository/CaseDefinitionQueryImpl.java#L105-L141","documentation":"FlowableIllegalArgumentException thrown by CaseDefinitionQueryImpl.caseDefinitionName(String) when the given case definition name is null. The CMMN engine's query API validates every filter setter up front so that invalid queries fail fast at construction time rather than producing broken SQL at execution time. Passing null to an exact-match filter is never allowed; omit the call entirely instead of filtering on null.","triggerScenarios":"Calling repositoryService.createCaseDefinitionQuery().caseDefinitionName(null) — directly or when a caller-supplied variable that was expected to hold a definition name is null.","commonSituations":"Developers wiring optional filters from config or request parameters (e.g. a REST query param that was absent) and passing the null variable straight into caseDefinitionName instead of skipping the setter.","solutions":["Pass a non-null definition name string, e.g. caseDefinitionName(\"myCase\").","If the name is optional, only call caseDefinitionName when it is non-null (conditional chaining).","Trace where the null originates (missing config/request field) and fix the upstream producer or default it."],"exampleFix":"// before\nString name = request.getParameter(\"name\"); // may be null\nquery.caseDefinitionName(name); // throws\n\n// after\nString name = request.getParameter(\"name\");\nif (name != null) {\n    query.caseDefinitionName(name);\n}","handlingStrategy":"validation","validationCode":"if (name != null) {\n    query.caseDefinitionName(name);\n}","typeGuard":"boolean hasName = name != null && !name.isEmpty();","tryCatchPattern":"try {\n    query.caseDefinitionName(name);\n} catch (FlowableIllegalArgumentException e) {\n    // name was null — fall back to unfiltered query or rethrow with context\n}","preventionTips":["Treat every CaseDefinitionQuery filter setter as rejecting null; wrap optional filters in null checks.","Use Objects.requireNonNull or your own guard at the point where the name enters your code for clearer errors."],"tags":["flowable","cmmn","query","null-check"],"backgroundTag":"null-argument","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}