fix: prevent leaking container validation annotations - #3322
Merged
bnasslahsen merged 1 commit intoSep 6, 2026
Merged
Conversation
vikas72878
approved these changes
Aug 20, 2026
bnasslahsen
added a commit
that referenced
this pull request
Sep 6, 2026
Restore tabs and the java-first import order in the test controllers touched by PR #3322, keep the 3.0.1 golden file in its existing indentation so the diff is limited to the new /persons path, and restore the trailing newlines. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bnasslahsen
added a commit
that referenced
this pull request
Sep 6, 2026
…al parameters Constraints written on the type argument of an Optional parameter were dropped. The merged form keeps the general handling introduced by PR #3322 - annotations are read from every parameter's annotated type, not only from Optional ones - and takes this pull request's guarded accessor, which returns null instead of throwing when the method parameter has no index. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bnasslahsen
pushed a commit
that referenced
this pull request
Sep 6, 2026
Annotations declared on a container's type argument were invisible when the schema was first resolved, so the constraint was applied afterwards to a cached schema shared by every parameter of that type. Reading them from the parameter's annotated type at resolution time keeps each parameter's constraints its own. Backport of PR #3322. The app267 test fixtures, introduced with PR #3259 and never backported, come along so the regression stays covered on this line too. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds so that the method parameter annotations are read with
methodParameter.getParameter().getAnnotatedType()so that it is considered when handling the schema at the resolver.The issue before was that the annotation was entirely missing in the resolving stage, which lead to schema being cached with the annotation present (which is an issue since the key calculation does not consider any annotations). This in turn lead to the schema being re-resolved with constraints already present, which then meant that they would all share the constraint that was last applied to the object.
The new behavior matches how the constraint annotation application done in
applyBeanValidatorAnnotationsfinds the annotations that it should apply to the schema.Fixes: #3318