hibernate/hibernate-orm · error · IllegalArgumentException
Filter definition object or name is null
Error message
Filter definition object or name is null: %s
What it means
InFlightMetadataCollectorImpl.addFilterDefinition requires a FilterDefinition object with a non-null filter name. Passing null - either the definition itself or its getFilterName() - throws IllegalArgumentException 'Filter definition object or name is null' with the (possibly null) definition appended. This guard runs before the map insert, so nothing is partially registered.
Solutions
- Construct the FilterDefinition with a non-null name before registering it
- Null-check the definition and its name at the registration boundary and fail with a descriptive error
- Fix the source configuration/XML so every filter definition declares a name
Example fix
// before
collector.addFilterDefinition(filterDef); // filterDef or its name is null
// after
if (filterDef == null || filterDef.getFilterName() == null) {
throw new IllegalArgumentException("filter definition requires a name");
}
collector.addFilterDefinition(filterDef); Defensive patterns
Strategy: validation
Validate before calling
Objects.requireNonNull(filterDefinition, "filter definition"); Objects.requireNonNull(filterDefinition.getFilterName(), "filter name"); collector.addFilterDefinition(filterDefinition);
Type guard
static boolean isRegistrableFilter(FilterDefinition d) {
return d != null && d.getFilterName() != null;
} Prevention
- Validate name presence when building FilterDefinitions from config maps
- Keep filter registration behind one helper that centralizes the null checks
When it happens
Trigger: Programmatic metadata or integration code calling addFilterDefinition(null), or with a FilterDefinition constructed without a name; XML <filter-def> elements with a missing name attribute surface here as well once parsed.
Common situations: Custom integrations registering filters built from configuration maps where the name key is absent; dynamic filter registration driven by user input; generated mappings with incomplete filter definitions.
Related errors
- Fetch profile object or name is null
- Id generator object or name is null
- null is not a valid generator name
- null is not a valid query name
- AbstractDelegatingMetadataBuildingOptions delegate did not…
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/2fbe1e42304c8a23.
Report an issue: GitHub.
Appendix: source
Thrown at hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java:589
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// filter definitions
@Override
public Map<String, FilterDefinition> getFilterDefinitions() {
return filterDefinitionMap;
}
@Override
public FilterDefinition getFilterDefinition(String name) {
return filterDefinitionMap.get( name );
}
@Override
public void addFilterDefinition(FilterDefinition filterDefinition) {
if ( filterDefinition == null || filterDefinition.getFilterName() == null ) {
throw new IllegalArgumentException( "Filter definition object or name is null: " + filterDefinition );
}
filterDefinitionMap.put( filterDefinition.getFilterName(), filterDefinition );
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// fetch profiles
@Override
public java.util.Collection<FetchProfile> getFetchProfiles() {
return fetchProfileMap.values();
}
@Override
public FetchProfile getFetchProfile(String name) {
return fetchProfileMap.get( name );
}
View on GitHub (pinned to fad1729dce)