I'm trying to parse API containing a circular relationship, like following:
{
"openapi": "3.0.0",
"info": {
"description": "Products",
"version": "1.0.0",
"title": "Product API",
"contact": {
"name": "Test",
"email": "Test"
},
"license": {
"name": "Proprietary license"
}
},
"tags": [],
"security": [
{
"accessToken": []
},
{
"apiKey": []
}
],
"paths": {
"/products": {
"get": {
"tags": [
"Product"
],
"summary": "Search Products",
"operationId": "searchProducts",
"parameters": [],
"responses": {
"200": {
"description": "OK",
"headers": {},
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Product"
}
}
}
}
}
},
"deprecated": false
}
}
},
"servers": [],
"components": {
"securitySchemes": {
"accessToken": {
"description": "Access token in JWT or opaque format sent in HTTP Authorization header, Bearer schema",
"type": "apiKey",
"name": "Authorization",
"in": "header"
},
"apiKey": {
"description": "API key for technical accounts (opaque format) sent in HTTP Authorization header, no schema",
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
},
"schemas": {
"Product": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the product"
},
"href": {
"type": "string",
"description": "Reference of the product"
},
"name": {
"type": "string",
"description": "Name of the product "
},
"description": {
"type": "string",
"description": "Description of the product "
},
"productRelationships": {
"type": "array",
"description": "A list of product relationships",
"items": {
"$ref": "#/components/schemas/ProductRelationship"
}
}
},
"title": "Product",
"description": "Product"
},
"ProductRelationship": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The direction of the relationship"
},
"product": {
"$ref": "#/components/schemas/Product"
}
},
"title": "ProductRelationship",
"description": "Indicates all relationships between the products"
}
}
}
}
I'm getting java.lang.StackOverflowError
java.lang.StackOverflowError: null
at java.base/java.util.HashMap.tableSizeFor(HashMap.java:379) ~[na:na]
at java.base/java.util.HashMap.<init>(HashMap.java:452) ~[na:na]
at java.base/java.util.HashMap.<init>(HashMap.java:463) ~[na:na]
at java.base/java.util.HashSet.<init>(HashSet.java:119) ~[na:na]
at com.reprezen.jsonoverlay.SerializationOptions.plus(SerializationOptions.java:38) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.SerializationOptions.plus(SerializationOptions.java:44) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.ListOverlay._toJsonInternal(ListOverlay.java:70) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:248) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:248) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:248) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:248) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:248) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:248) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:248) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:248) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:248) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:248) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.PropertiesOverlay._toJsonInternal(PropertiesOverlay.java:298) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.MapOverlay._toJsonInternal(MapOverlay.java:75) ~[jsonoverlay-4.0.4.jar:na]
at com.reprezen.jsonoverlay.JsonOverlay._toJson(JsonOverlay.java:251) ~[jsonoverlay-4.0.4.jar:na]
I'm trying to parse API containing a circular relationship, like following:
I'm getting java.lang.StackOverflowError
Is there any way around this problem?