-
-
Notifications
You must be signed in to change notification settings - Fork 21
Closed
Labels
Description
Actual behavior (the bug)
When registering OpenApiPlugin with a definition configuration (even if it is empty/blank) trying to access the openapi.json documentation causes a server error
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No value type configured for ObjectReader
at [Source: UNKNOWN; byte offset: #UNKNOWN]
at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)
at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1887)
at com.fasterxml.jackson.databind.ObjectReader._findRootDeserializer(ObjectReader.java:2397)
at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:2125)
at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1744)
at io.javalin.openapi.plugin.OpenApiPlugin.applyConfigurationTo(OpenApiPlugin.kt:47)
at io.javalin.openapi.plugin.OpenApiPlugin.access$applyConfigurationTo(OpenApiPlugin.kt:12)
at io.javalin.openapi.plugin.OpenApiPlugin$createDocumentation$1.invoke(OpenApiPlugin.kt:37)
at io.javalin.openapi.plugin.OpenApiPlugin$createDocumentation$1.invoke(OpenApiPlugin.kt:25)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at io.javalin.openapi.plugin.OpenApiHandler.handle(OpenApiHandler.kt:15)
at io.javalin.router.Endpoint.handle(Endpoint.kt:52)
at io.javalin.router.ParsedEndpoint.handle(ParsedEndpoint.kt:15)
at io.javalin.http.servlet.DefaultTasks.HTTP$lambda$9$lambda$7$lambda$6(DefaultTasks.kt:52)
at io.javalin.http.servlet.JavalinServlet.handleTask(JavalinServlet.kt:99)
at io.javalin.http.servlet.JavalinServlet.handleSync(JavalinServlet.kt:64)
at io.javalin.http.servlet.JavalinServlet.handle(JavalinServlet.kt:50)
at io.javalin.http.servlet.JavalinServlet.service(JavalinServlet.kt:30)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
at io.javalin.jetty.JavalinJettyServlet.service(JavalinJettyServlet.kt:52)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1381)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1303)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:563)
at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
at java.base/java.lang.Thread.run(Thread.java:1583)Expected behavior
There shouldn't be an error for adding a definition configuration
To Reproduce
build.gradle.kts
dependencies {
val javalin = "6.4.0"
implementation("io.javalin:javalin:$javalin")
implementation("io.javalin.community.openapi:javalin-openapi-plugin:$javalin")
implementation("io.javalin.community.openapi:javalin-redoc-plugin:$javalin")
kapt("io.javalin.community.openapi:openapi-annotation-processor:$javalin")
}open api setting configuration
conf.registerPlugin(OpenApiPlugin { openapi ->
openapi
.withDocumentationPath("/docs/openapi.json")
.withDefinitionConfiguration { version, def -> /* Just existing causes an error **/ }
})Additional context
Add any other context about the bug here
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
✅ Done