Stackoverflow on parsing API spec given a cyclic reference in schema
mohamnag opened this issue · 5 comments
mohamnag commented
Version
introduced in 4.4.2, was working in 4.4.1.
Context
While parsing an OpenAPI contract which contains a cyclic reference in the schema, we get a stackoverflow error:
java.lang.StackOverflowError
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1079)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1084)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:1064)
at io.vertx.core.json.JsonObject.copy(JsonObject.java:38)
at io.vertx.core.json.impl.JsonUtil.deepCopy(JsonUtil.java:110)
Do you have a reproducer?
here: https://github.com/mohamnag/reproducer-bug-vertx-openapi
Steps to reproduce
use gradle run
pk-work commented
I will have a look
pk-work commented
fixed
mohamnag commented
Sure, no problem and thanks for the fast fix. Which version could we expect this to be included in?On 12.06.2023, at 08:11, Pascal ***@***.***> wrote:
@mohamnag thanks for bringing this up!
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
pk-work commented
In Vert.x 4.4.4 I don't know when it will be released. Because 4.4.3 was just last week.