Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !3780

[core] do not always cast to ArraySchema

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/jmini/issue3770-do-not-cast-to-arrayschema into master Aug 28, 2019
  • Overview 0
  • Commits 3
  • Pipelines 0
  • Changes 4

Created by: jmini

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\. If contributing template-only or documentation-only changes which will change sample output, be sure to build the project first.
  • Filed the PR against the correct branch: master, 4.1.x, 5.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language. @OpenAPITools/generator-core-team

Description of the PR

Similar to PR #3765 but solved at core Level.

Casting an ObjectSchema to ArraySchema after a ModelUtils.isArraySchema(schema) produces java.lang.ClassCastException: io.swagger.v3.oas.models.media.ObjectSchema cannot be cast to io.swagger.v3.oas.models.media.ArraySchema error in some cases.

This is because of the implementation of ModelUtils.isArraySchema(Schema) (the second part of the method):

https://github.com/OpenAPITools/openapi-generator/blob/5a54aa5726342e2a469f943883b2ad44c22abbdc/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java#L361-L370

In the case commented with "// assume it's an array if maxItems, minItems is set" we have an ObjectSchema. When we try to read the items value, we need to check if we are allowed to cast or not.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/jmini/issue3770-do-not-cast-to-arrayschema