swagger-api / swagger-parser

Swagger Spec to Java POJOs
http://swagger.io
Apache License 2.0
780 stars 525 forks source link

Discriminator causes stackoverflow #503

Open aavanzyl opened 7 years ago

aavanzyl commented 7 years ago

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)
webron commented 7 years ago

Swagger is not a specific project, it's a collection of those. Which one are you referring to? 2.2.3 is the version of what?

aavanzyl commented 7 years ago

Hi

Using the Swagger Codegen.

<dependency>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen</artifactId>
    <version>2.2.3</version>
</dependency>
vasilaio commented 6 years ago

Same issue with swagger-codegen-cli-2.3.1

The Stacktrace:

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)
Caused by: java.lang.StackOverflowError
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:708)
peterjaric commented 4 years ago

I'm seeing the same in 3.0.20.

piurafunk commented 1 year ago

I found a different issue before this one, figured I'd link the 2, as they seem related: https://github.com/swagger-api/swagger-codegen/issues/10851

My opinion is to move off Swagger tools and onto OpenAPI tools.