Open
Description
We have an issue in Apache Camel when upgrading swagger-core from 2.2.23 to 2.2.32 in relation to parsing as open-api v3.1 models.
The same test work with parsing as open-api v3.0.
The exception we see from tests have a stacktrace leading into a ClassCastException.
java.lang.ClassCastException: class io.swagger.v3.oas.models.media.JsonSchema cannot be cast to class io.swagger.v3.oas.models.media.ComposedSchema (io.swagger.v3.oas.models.media.JsonSchema and io.swagger.v3.oas.models.media.ComposedSchema are in unnamed module of loader 'app')
at io.swagger.v3.core.jackson.ModelResolver.resolve(ModelResolver.java:1046)
at org.apache.camel.openapi.RestModelConverters$ClassNameExtensionModelResolver.resolve(RestModelConverters.java:117)
at io.swagger.v3.core.converter.ModelConverterContextImpl.resolve(ModelConverterContextImpl.java:97)
at io.swagger.v3.core.jackson.ModelResolver.resolve(ModelResolver.java:824)
at org.apache.camel.openapi.RestModelConverters$ClassNameExtensionModelResolver.resolve(RestModelConverters.java:117)
at io.swagger.v3.core.converter.ModelConverterContextImpl.resolve(ModelConverterContextImpl.java:97)
at io.swagger.v3.core.converter.ModelConverters.readAll(ModelConverters.java:204)
at io.swagger.v3.core.converter.ModelConverters.readAll(ModelConverters.java:195)
at org.apache.camel.openapi.RestModelConverters.readClassOpenApi3(RestModelConverters.java:77)
at org.apache.camel.openapi.RestModelConverters.readClass(RestModelConverters.java:66)
at org.apache.camel.openapi.RestOpenApiReader.appendModels(RestOpenApiReader.java:1029)
at org.apache.camel.openapi.RestOpenApiReader.parse(RestOpenApiReader.java:324)
at org.apache.camel.openapi.RestOpenApiReader.read(RestOpenApiReader.java:209)
The parser creates the schema model in line 597 depending on v3.1 vs v3.0 as the following code shows:
And then you have the class cast exception because of this:
Maybe that type cast need to check if its v3.1 and v3.0 or better handle the ComposedSchema vs JsonSchema without a hardcoded type-cast.
Metadata
Metadata
Assignees
Labels
No labels