{"record":{"id":"fa2db14e54ea199d","repo":"quarkusio/quarkus","slug":"name-parameter-is-null","errorCode":null,"errorMessage":"Name parameter is null","messagePattern":"Name parameter is null","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"independent-projects/resteasy-reactive/common/runtime/src/main/java/org/jboss/resteasy/reactive/common/jaxrs/UriBuilderImpl.java","lineNumber":759,"sourceCode":"        return buildFromValues(true, false, values);\n    }\n\n    protected URI buildFromValues(boolean encodeSlash, boolean encoded, Object... values) {\n        String buf = null;\n        try {\n            buf = buildString(new URITemplateParametersMap(values), encoded, false, encodeSlash);\n            return new URI(buf);\n            //return URI.create(buf);\n        } catch (IllegalArgumentException iae) {\n            throw iae;\n        } catch (Exception e) {\n            throw new UriBuilderException(\"failed to create URI\", e);\n        }\n    }\n\n    public UriBuilder matrixParam(String name, Object... values) throws IllegalArgumentException {\n        if (name == null)\n            throw new IllegalArgumentException(\"Name parameter is null\");\n        if (values == null)\n            throw new IllegalArgumentException(\"Values parameter is null\");\n        if (path == null)\n            path = \"\";\n        for (Object val : values) {\n            if (val == null)\n                throw new IllegalArgumentException(\"Value is null\");\n            String matrixName = encode ? Encode.encodeMatrixParam(name) : name;\n            String matrixValue = encode ? Encode.encodeMatrixParam(val.toString()) : val.toString();\n            path += \";\" + matrixName + \"=\" + matrixValue;\n        }\n        return this;\n    }\n\n    private static final Pattern PARAM_REPLACEMENT = Pattern.compile(\"_resteasy_uri_parameter\");\n\n    public UriBuilder replaceMatrixParam(String name, Object... values) throws IllegalArgumentException {\n        if (name == null)","sourceCodeStart":741,"sourceCodeEnd":777,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/resteasy-reactive/common/runtime/src/main/java/org/jboss/resteasy/reactive/common/jaxrs/UriBuilderImpl.java#L741-L777","documentation":"IllegalArgumentException from UriBuilder.matrixParam(name, values): the matrix parameter name is null. JAX-RS matrix parameters require a name; a null name would make the resulting ';=value' segment meaningless, so the builder rejects it immediately before touching values.","triggerScenarios":"matrixParam(someVariable, v1, v2) where the variable is null — typically an unset config value, an unannotated method parameter, or a name derived from a map key lookup that missed (map.get returns null).","commonSituations":"Names loaded from configuration or annotations that were absent; dynamic matrix params built from a Map whose key extraction returned null; refactor renamed the constant but not the call site.","solutions":["Ensure the name is non-null before calling matrixParam; fail fast with Objects.requireNonNull(name, \"matrix param name\")","Fix the source producing the null name (config key, map lookup, annotation value)","Skip the matrixParam call when the name is absent instead of passing null","Validate names against the expected set at startup (config mapping) so nulls surface early"],"exampleFix":"// before\nbuilder.matrixParam(paramName, \"v\"); // paramName may be null\n// after\nObjects.requireNonNull(paramName, \"matrix param name must not be null\");\nbuilder.matrixParam(paramName, \"v\");","handlingStrategy":"validation","validationCode":"if (name == null || name.isBlank()) { throw new IllegalStateException(\"Matrix param name required\"); }\nbuilder.matrixParam(name, value);","typeGuard":"static boolean validMatrixName(String name) { return name != null && !name.isBlank(); }","tryCatchPattern":"try {\n    builder.matrixParam(name, value);\n} catch (IllegalArgumentException e) {\n    if (\"Name parameter is null\".equals(e.getMessage())) {\n        throw new IllegalStateException(\"Matrix parameter name was null; check config/source of name\", e);\n    }\n    throw e;\n}","preventionTips":["requireNonNull the name at the point where it is derived (config key, map lookup)","Skip matrixParam entirely when the name is absent rather than passing null","Centralize matrix-param construction in one helper that validates names"],"tags":["uri","resteasy-reactive","null-argument","matrix-param"],"backgroundTag":"null-argument","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}