Bug Report Checklist
Description
If a POST-call gets a recursive structure (e.g., a Tree) as one of its parameter, the swift4 generator crashes when trying to generate example.
openapi-generator version
master/4.0.0 introduced by #2666
OpenAPI declaration file content or url
https://gist.github.com/lemoinem/0b3d7d065d9337a898d5ee2bc49654a2
Command line used for generation
./bin/swift4-petstore.sh while the yaml is stored at modules/openapi-generator/src/test/resources/2_0/swift/petstore-with-fake-endpoints-models-for-testing.yaml
Steps to reproduce
- Store yaml attached in gist at
modules/openapi-generator/src/test/resources/2_0/swift/petstore-with-fake-endpoints-models-for-testing.yaml
- run command
./bin/swift4-petstore.sh
=> Crash with java.lang.StackOverflowError
Related issues/PRs
This was probably introduced by #2666 which doesn't check for recursive structure when creating an example.
Suggest a fix
At the very least, generating example/self-documentation should be optional and should fail gracefully.
At the most, the constructExampleCode method should check for recursive structures (circular references) and fail gracefully in this case.
Bug Report Checklist
crash vs no crash
Description
If a POST-call gets a recursive structure (e.g., a Tree) as one of its parameter, the swift4 generator crashes when trying to generate example.
openapi-generator version
master/4.0.0 introduced by #2666
OpenAPI declaration file content or url
https://gist.github.com/lemoinem/0b3d7d065d9337a898d5ee2bc49654a2
Command line used for generation
./bin/swift4-petstore.shwhile the yaml is stored atmodules/openapi-generator/src/test/resources/2_0/swift/petstore-with-fake-endpoints-models-for-testing.yamlSteps to reproduce
modules/openapi-generator/src/test/resources/2_0/swift/petstore-with-fake-endpoints-models-for-testing.yaml./bin/swift4-petstore.sh=> Crash with java.lang.StackOverflowError
Related issues/PRs
This was probably introduced by #2666 which doesn't check for recursive structure when creating an example.
Suggest a fix
At the very least, generating example/self-documentation should be optional and should fail gracefully.
At the most, the
constructExampleCodemethod should check for recursive structures (circular references) and fail gracefully in this case.