3.0.8- 2026-09-30
Added
Changed
- Expose
Error.isCustomMessage()to identify messages supplied by the schema through the configured error message keyword, while preserving the existingErrorconstructor's binary compatibility and JSON serialization format. (680d7b3,f8c7659) - Reject leading or interior empty labels and names consisting only of label separators in the
idn-hostnameformat (#1274) Thanks @dngr2 - Allow apostrophes in
uri-templateliterals (#1275) Thanks @dngr2 - Honor
PathTypewhen formatting schema locations inDiscriminatorValidatorexceptions (#1281) Thanks @youdie006 - Resolve the OpenAPI
nullablekeyword throughallOf/oneOf/anyOf,if/then/elseand$ref/$dynamicRef/$recursiveRefancestors, to any depth and in any order.nullableon a schema composed through these keywords now applies to the value they describe, for both thetypeandenumkeywords (#1278, #1279, #1283) Thanks @tomakehurst nullableon a container no longer applies to the values described by itsproperties,itemsandadditionalPropertiessubschemas. Previously anullablecontainer made its children acceptnull. Schemas relying on that must declarenullableon the child itself. (#1283) Thanks @tomakehurstoneOfno longer requires exactly one matching branch when the value isnulland anullableancestor permits it. Every branch acceptsnullin that case, so{"nullable": true, "oneOf": [ ... ]}previously reported that more than one branch matched. Branch errors are still reported when no branch matches. (#1283) Thanks @tomakehurstnullableno longer applies inside anotsubschema, so{"nullable": true, "not": {"type": "string"}}now acceptsnullwhere it previously reported anoterror. (#1283) Thanks @tomakehurst- With
typeLooseenabled, the empty string no longer satisfies anenumon anullableschema.nullwas previously held in the accepted set and compared as text, where it renders as the empty string, so{"enum": ["a"], "nullable": true}accepted"". Only an actualnullis accepted now. (#1283) Thanks @tomakehurst - A
nullabledeclared alongside$refis now ignored at the root of an OpenAPI 3.0 schema as it already was elsewhere, so{"$ref": "...", "nullable": true}rejectsnull. Siblings of a Reference Object are ignored in OpenAPI 3.0. (#1283) Thanks @tomakehurst - Add regression coverage for YAML
.nan,.infand-.infvalues producing validation type errors instead of parser exceptions with Jackson 3.2.1 (#1228, #1282) Thanks @patpatpat123 - Upgrade SLF4J from 2.0.17 to 2.0.19 and the test dependency Logback from 1.5.22 to 1.6.3. (
759445b,3d9971d,2575a02) - Upgrade Maven Surefire and Surefire Report from 3.5.4 to 3.6.0, and the Central Publishing Maven plugin from 0.7.0 to 0.11.0. (
f26327c,4649209) - Upgrade the benchmark workflow to
actions/checkout@v7andactions/setup-java@v6. (6f5d6c1)