{"record":{"id":"1fa1f7de315253a6","repo":"hibernate/hibernate-orm","slug":"null-is-not-a-valid-query-name","errorCode":null,"errorMessage":"null is not a valid query name","messagePattern":"null is not a valid query name","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java","lineNumber":699,"sourceCode":"\t\treturn namedEntityGraphMap;\n\t}\n\n\t@Override\n\tpublic void addNamedEntityGraph(NamedEntityGraphDefinition definition) {\n\t\tfinal String name = definition.name();\n\t\tfinal var previous = namedEntityGraphMap.put( name, definition );\n\t\tif ( previous != null ) {\n\t\t\tthrow new DuplicateMappingException( DuplicateMappingException.Type.NAMED_ENTITY_GRAPH, name );\n\t\t}\n\t}\n\n\n\t// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\t// Named query handling\n\n\tpublic NamedHqlQueryDefinition<?> getNamedHqlQueryMapping(String name) {\n\t\tif ( name == null ) {\n\t\t\tthrow new IllegalArgumentException( \"null is not a valid query name\" );\n\t\t}\n\t\treturn namedQueryMap.get( name );\n\t}\n\n\t@Override\n\tpublic void visitNamedHqlQueryDefinitions(Consumer<NamedHqlQueryDefinition<?>> definitionConsumer) {\n\t\tnamedQueryMap.values().forEach( definitionConsumer );\n\t}\n\n\t@Override\n\tpublic void addNamedQuery(NamedHqlQueryDefinition<?> def) {\n\t\tif ( def == null ) {\n\t\t\tthrow new IllegalArgumentException( \"Named query definition is null\" );\n\t\t}\n\t\telse if ( def.getRegistrationName() == null ) {\n\t\t\tthrow new IllegalArgumentException( \"Named query definition name is null: \" + def.getHqlString() );\n\t\t}\n\t\telse if ( !defaultNamedQueryNames.contains( def.getRegistrationName() ) ) {","sourceCodeStart":681,"sourceCodeEnd":717,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java#L681-L717","documentation":"getNamedHqlQueryMapping(name) looks up registered named HQL query definitions by name and rejects a null name immediately with IllegalArgumentException 'null is not a valid query name'. It signals that caller code passed an unresolved null query name into the lookup during metadata handling; a merely unknown name would return null without throwing.","triggerScenarios":"Integration or metadata-processing code calling getNamedHqlQueryMapping(null) - typically a query-name variable that failed to resolve, or processing of query definitions whose name attribute was missing so null flowed into the lookup (InFlightMetadataCollectorImpl.java:697-701).","commonSituations":"Custom named-query registration utilities; mappings where a <query> element or annotation lacks a name; conditional code paths that forget to set the name before use.","solutions":["Fix the caller on the stack trace so a real query name is resolved before the lookup","Guard with a null/empty check and fail with a descriptive error identifying the incomplete definition","Ensure every named query definition (annotation or XML) declares a name"],"exampleFix":"// before\nvar def = collector.getNamedHqlQueryMapping(queryName); // queryName is null\n\n// after\nif (queryName == null || queryName.isBlank()) {\n    throw new IllegalArgumentException(\"named query definition lacks a name\");\n}\nvar def = collector.getNamedHqlQueryMapping(queryName);","handlingStrategy":"validation","validationCode":"if (queryName == null || queryName.isBlank()) {\n    throw new IllegalArgumentException(\"named query definition lacks a name\");\n}\nvar definition = collector.getNamedHqlQueryMapping(queryName);","typeGuard":"static boolean isQueryableQueryName(String name) {\n    return name != null && !name.isBlank();\n}","tryCatchPattern":null,"preventionTips":["Resolve query names from definitions and validate them before lookups","Ensure every @NamedQuery / <query> definition declares a name attribute"],"tags":["hibernate","named-query","metadata","null-check"],"backgroundTag":"invalid-query-name","analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}