swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
[main] INFO io.swagger.parser.Swagger20Parser - reading from sscce.yaml
Exception in thread "main" java.lang.StackOverflowError
at java.util.HashMap.getNode(HashMap.java:571)
at java.util.LinkedHashMap.get(LinkedHashMap.java:440)
at io.swagger.codegen.DefaultCodegen.isDiscriminatorInInterfaceTree(DefaultCodegen.java:1410)
at io.swagger.codegen.DefaultCodegen.isDiscriminatorInInterfaceTree(DefaultCodegen.java:1416)
at io.swagger.codegen.DefaultCodegen.isDiscriminatorInInterfaceTree(DefaultCodegen.java:1416)
[snip] repeats about 1000 times. ... default java recursion limit I suppose.
If I accidantely hit this in real spec as opposed to when writing sscce for something else I'd be pretty lost. I'd have to apply the technique of halving the interval, which indeed I had to do several times (for different issues) when I was starting out.
Description
swagger-codegen generate should detect an infinitely recursive type definition and error out with informative message
Swagger-codegen version
current master; HEAD = 1c160df33897898da1c39f230c737eb6a313e6ba
Swagger declaration file content or url
Command line used for generation
JAR=".../swagger-codegen.git/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar" java -jar "${JAR}" generate -i ~/sscce.yaml -l html2 -o foo
outputs:
If I accidantely hit this in real spec as opposed to when writing sscce for something else I'd be pretty lost. I'd have to apply the technique of halving the interval, which indeed I had to do several times (for different issues) when I was starting out.