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.shif 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):
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.