Skip to content

ModelResolver#resolve ignores TYPE_USE annotations on property types #4848

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
olsavmic opened this issue Feb 26, 2025 · 3 comments
Open

ModelResolver#resolve ignores TYPE_USE annotations on property types #4848

olsavmic opened this issue Feb 26, 2025 · 3 comments

Comments

@olsavmic
Copy link

We're using the JSpecify annotations (which will become the default nullability annotations in Spring Framework 7) and we encountered an issue with Swagger-core capabilities.

These nullability annotations are properly targeting TYPE_USE element type, which is currently not read at all by the io.swagger.v3.core.jackson.ModelResolver#resolve, making it impossible to set OpenAPI properties (such as eg. nullability) automatically.

  • Do you see any blocker why TYPE_USE annotations should not be considered by the ModelResolver?
  • Do you see any way around until the swagger-core is improved?
@TijsSchoneveld
Copy link

We've encountered the same issue, I would expect to find the TYPE_USE annotations within io.swagger.v3.core.converter.AnnotatedType so they can be used when implementing a custom ModelConverter.

This issue is preventing us from deriving OpenAPI nullability from JSpecify annotations.

@HerrDerb
Copy link

I think swagger definitely should be compatible with jSpecify or probable even should be a member of it -> https://jspecify.dev/about/

@marceloverdijk
Copy link

marceloverdijk commented May 12, 2025

I'm experiencing the same issue.

Is there maybe a workaround until it's supported?

Here is also a blog post about Spring Framework moving to JSpecify.
So wider adoption of these annotation is expected sooner or later.

Besides JSpecify's @Nullable and @NonNull also @NullMarked on package level should be supported to indicate all fields are "non-null", but can still be overridden per field with @nullable where needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants