Skip to content

Fix discriminator model lookup when used together with model name suffix#23363

Merged
wing328 merged 1 commit intoOpenAPITools:masterfrom
hrach:js/fix-discriminator-model-lookup
Apr 1, 2026
Merged

Fix discriminator model lookup when used together with model name suffix#23363
wing328 merged 1 commit intoOpenAPITools:masterfrom
hrach:js/fix-discriminator-model-lookup

Conversation

@hrach
Copy link
Copy Markdown
Contributor

@hrach hrach commented Mar 26, 2026

When modelNamePrefix or modelNameSuffix is configured, MappedModel.modelName stores the transformed name (e.g. AppleReqDiscDto), while the allProcessedModels map in postProcessAllModels is keyed by the raw OAS schema name (e.g. AppleReqDisc). This mismatch caused ModelUtils.getModelByName to return null, leaving
MappedModel.model unresolved — breaking discriminator-based serialization in generated code.

The fix adds a schemaName field to CodegenDiscriminator.MappedModel that preserves the original OAS schema name before any prefix/suffix transformation. During postProcessAllModels, the lookup now uses schemaName (falling back to modelName for backward compatibility), enabling a direct O(1) map key hit instead of
requiring a linear scan.

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package || exit
    ./bin/generate-samples.sh ./bin/configs/*.yaml || exit
    ./bin/utils/export_docs_generators.sh || exit
    
    (For Windows users, please run the script in WSL)
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
  • File the PR against the correct branch: master (upcoming 7.x.0 minor release - breaking changes with fallbacks), 8.0.x (breaking changes without fallbacks)
  • If your PR solves a reported issue, reference it using GitHub's linking syntax (e.g., having "fixes #123" present in the PR description) (It is not, or more specifically, I'm not sure. Some seem related, though.)
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request. (it is not)

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 3 files


Since this is your first cubic review, here's how it works:

  • cubic automatically reviews your code and comments on bugs and improvements
  • Teach cubic by replying to its comments. cubic learns from your replies and gets better over time
  • Add one-off context when rerunning by tagging @cubic-dev-ai with guidance or docs links (including llms.txt)
  • Ask questions if you need clarification on any suggestion

@hrach
Copy link
Copy Markdown
Contributor Author

hrach commented Mar 31, 2026

Hi @wing328, I saw you reviewed similar things around the discriminator. Could you please review this one? :) thx.

@wing328
Copy link
Copy Markdown
Member

wing328 commented Apr 1, 2026

thanks for the fix

let's give it a try

@wing328 wing328 merged commit e1c4fdb into OpenAPITools:master Apr 1, 2026
15 checks passed
@wing328 wing328 added this to the 7.22.0 milestone Apr 1, 2026
@hrach
Copy link
Copy Markdown
Contributor Author

hrach commented Apr 1, 2026

thank you :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants