swagger-api / swagger-api/swagger-parser
Discriminator causes stackoverflow
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 867
- Forks
- 560
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 7
Description
Hi
So when using a discriminator I get a stack overflow. You can only see this when running in verbose.
Swagger Version: 2.2.3
Java Version: 1.8
I generate Java API code from this, but the failure happens in the parsing of the swagger document.
My Swagger:
Offer:
type: object
# Used in the parent object to distinguish which derived object is used.
discriminator: offerType
required:
- "offerType"
- "id"
- "name"
- "value"
- "productType"
properties:
offerType:
type: string
example: "LimitedOffer"
id:
description: "Used internally in the database. Use this value for the delete endpoint."
type: integer
format: int64
minimum: 1
name:
description: "The name of the product."
type: string
maxLength: 100
example: "Samsung Galaxy S7"
productType:
$ref: "#/definitions/ProductType"
description:
description: "A description of the product offer."
type: string
maxLength: 200
example: "The Galaxy S7's hardware design is largely identical to that of the S6; it retains its metal and glass chassis, but with refinements such as a squarer home button, and a thinner protrusion for the camera. Both models are available in black and gold colors; white, pink, and silver versions are available depending on market."
inStock:
description: "Is the product ex stock."
type: boolean
example: "true"
value:
description: "The value of points required to buy this offer."
type: integer
format: int64
minimum: 0
example: "10000"
discountRate:
description: "Optional percentage discount on this offer."
type: number
format: double
minimum: 0
maximum: 100
example: 25.0
expires:
description: "Date on which the offer expires, and is no longer available."
type: string
format: date-time
example: "2016-12-25T00:00:00.000+02:00"
image:
description: "Image base64 encoded data of the product on offer."
type: string
format: byte
maxLength: 10000
example: "iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAMAAADXEh96AAAAA1BMVEX/8gA/aIoIAAAAC0lEQVR4AWMgGgAAACoAAdrhCd0AAAAASUVORK5CYII="
# Example of inheritance
LimitedOffer:
allOf:
- $ref: '#/definitions/Offer'
- type: object
required:
- "duration"
properties:
duration:
description: "How long is this limited offer valid."
type: string
format: date-time
example: "2016-12-25T00:00:00.000+02:00"
availableFrom:
description: "From when is the offer available."
type: string
format: date
example: "2016-12-24"
The Stack Trace I get:
[main] INFO io.swagger.codegen.DefaultGenerator - ############ Supporting file info ############
com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"]->io.swagger.codegen.CodegenModel["children"]->java.util.ArrayList[0]->io.swagger.codegen.CodegenModel["parentModel"])
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:705)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689)
.....
It goes on and on.
Caused by: java.lang.StackOverflowError
at java.io.IOException.<init>(IOException.java:58)
at com.fasterxml.jackson.core.JsonProcessingException.<init>(JsonProcessingException.java:25)
at com.fasterxml.jackson.core.JsonProcessingException.<init>(JsonProcessingException.java:41)
at com.fasterxml.jackson.databind.JsonMappingException.<init>(JsonMappingException.java:251)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:705)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the verbose Java generation failure with the supplied Offer and LimitedOffer discriminator example, then trace the parsing and DefaultGenerator flow shown in the stack trace. The fix is done when this inheritance structure no longer causes infinite recursion or StackOverflowError during verbose processing, with the existing behavior preserved for valid discriminator models.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100