OpenAPITools / openapi-generator

OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
https://openapi-generator.tech
Apache License 2.0
21.56k stars 6.52k forks source link

[BUG][JAVA][RUBY] Stack overflow hit when parsing swagger #17905

Open Ruubb opened 7 months ago

Ruubb commented 7 months ago

Bug Report Checklist

Description

I've a swagger that I would like to translate to ruby code. When I run the following command:

java -jar openapi-generator-cli-7.3.0.jar generate -i openapi.json -g ruby -p useAutoload=true --additional-properties=moduleName=OpenApiClientVersioned --skip-validate-spec

it gives me the following error message:

[main] INFO  o.o.codegen.DefaultGenerator - Generating with dryRun=false
[main] INFO  o.o.c.ignore.CodegenIgnoreProcessor - No .openapi-generator-ignore file found.
[main] INFO  o.o.codegen.DefaultGenerator - OpenAPI Generator: ruby (client)
[main] INFO  o.o.codegen.DefaultGenerator - Generator 'ruby' is considered stable.
[main] INFO  o.o.c.languages.AbstractRubyCodegen - Hint: Environment variable 'RUBY_POST_PROCESS_FILE' (optional) not defined. E.g. to format the source code, please try 'export RUBY_POST_PROCESS_FILE="/usr/local/bin/rubocop -a"' (Linux/Mac)
[main] WARN  o.o.codegen.InlineModelResolver - allOf schema `null` containing multiple types (not model) is not supported at the moment.
[main] INFO  o.o.codegen.InlineModelResolver - Inline schema created as authenticationCommand_request. To have complete control of the model name, set the `title` field or use the modelNameMapping option (e.g. --model-name-mappings authenticationCommand_request=NewModel,ModelA=NewModelA in CLI) or inlineSchemaNameMapping option (--inline-schema-name-mappings authenticationCommand_request=NewModel,ModelA=NewModelA in CLI).
[main] INFO  o.o.codegen.utils.URLPathUtils - 'host' (OAS 2.0) or 'servers' (OAS 3.0) not defined in the spec. Default to [http://localhost] for server URL [http://localhost/]
[main] INFO  o.o.codegen.utils.URLPathUtils - 'host' (OAS 2.0) or 'servers' (OAS 3.0) not defined in the spec. Default to [http://localhost] for server URL [http://localhost/]
Exception in thread "main" java.lang.RuntimeException: Could not process model 'CqSerializable'.Please make sure that your schema is correct!
    at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:546)
    at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:974)
    at org.openapitools.codegen.cmd.Generate.execute(Generate.java:511)
    at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
    at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
Caused by: java.lang.RuntimeException: Stack overflow hit when looking for CqSerializable an infinite loop starting and ending at authenticationCommand_request was seen
    at org.openapitools.codegen.DefaultCodegen.getAllOfDescendants(DefaultCodegen.java:3539)
    at org.openapitools.codegen.DefaultCodegen.createDiscriminator(DefaultCodegen.java:3621)
    at org.openapitools.codegen.DefaultCodegen.fromModel(DefaultCodegen.java:3086)
    at org.openapitools.codegen.DefaultGenerator.processModels(DefaultGenerator.java:1358)
    at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:541)
    ... 4 more
openapi-generator version

openapi-generator-cli-7.3.0.jar openapi-generator-cli-8.0.0-20231011.125706-1.jar

OpenAPI declaration file content or url

https://gist.github.com/Ruubb/0724a4d471f4363ebedde7ff6006fce9

Generation Details

It does not work for ruby, java

Steps to reproduce

Run the following command:

java -jar openapi-generator-cli-7.3.0.jar generate -i openapi.json -g ruby -p useAutoload=true --additional-properties=moduleName=OpenApiClientVersioned --skip-validate-spec

Where opanpi.json has the content provided previously.

Related issues/PRs

13714

Suggest a fix
ghenadiibatalski commented 3 months ago

Hello, is there any progress here?

Regards, Gena