Skip to content

Commit

Permalink
Fix deserialization of polymorphic types when discriminator property …
Browse files Browse the repository at this point in the history
…is unknown or null (#981)

Fix deserialization of polymorphic types when discriminator property is unknown or null (#980)

* Cleanup remaining custom polymorphic MixIns

* Add defaultImpl to @JsonTypeInfo annotation
- Handles cases where the discriminator is null, like Directory Integration apps

Co-authored-by: Clément Denis <[email protected]>
  • Loading branch information
arvindkrishnakumar-okta and clementdenis committed Mar 29, 2024
1 parent 0c75262 commit 5713c56
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 122 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{{!
Based on https://github.com/OpenAPITools/openapi-generator/blob/v6.6.0/modules/openapi-generator/src/main/resources/Java/typeInfoAnnotation.mustache
- Add defaultImpl to deserialize to base type if discriminator is null or unknown
- Remove @JsonIgnoreProperties on discriminator field and set include to JsonTypeInfo.As.EXISTING_PROPERTY
}}
{{#jackson}}

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "{{{discriminator.propertyBaseName}}}", visible = true, defaultImpl = {{classname}}.class)
{{#discriminator.mappedModels}}
{{#-first}}
@JsonSubTypes({
{{/-first}}
@JsonSubTypes.Type(value = {{modelName}}.class, name = "{{^vendorExtensions.x-discriminator-value}}{{mappingName}}{{/vendorExtensions.x-discriminator-value}}{{#vendorExtensions.x-discriminator-value}}{{{vendorExtensions.x-discriminator-value}}}{{/vendorExtensions.x-discriminator-value}}"),
{{#-last}}
})
{{/-last}}
{{/discriminator.mappedModels}}
{{/jackson}}

This file was deleted.

This file was deleted.

0 comments on commit 5713c56

Please sign in to comment.