[
https://issues.apache.org/jira/browse/CAMEL-22493?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-22493:
-----------------------------------
Assignee: Claus Ibsen
> camel-rest-openapi: Potential NPE in OpenApiUtils.isArrayType
> -------------------------------------------------------------
>
> Key: CAMEL-22493
> URL: https://issues.apache.org/jira/browse/CAMEL-22493
> Project: Camel
> Issue Type: Bug
> Components: camel-rest-openapi
> Affects Versions: 4.14.0, 4.15.0
> Reporter: James Netherton
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.14.2, 4.16.0
>
> Attachments: openapi.yaml, rest.camel.yaml
>
>
> See further details from a user on Zulip:
> https://camel.zulipchat.com/#narrow/channel/257302-camel-quarkus/topic/Contract.20first.20issue.20with.20camel-rest-openapi/with/542936888
> With the attached OpenAPI contract first route & and OpenAPI spec,
> OpenApiUtils.isArrayType throws an NPE. There's no null guard around
> schema.getTypes() before the attempting to chain to .stream().
> OpenApiUtils.getSchemaType() does have such a check.
> {code}
> (main) Failed to start application: java.lang.NullPointerException: Cannot
> invoke "java.util.Set.stream()" because the return value of
> "io.swagger.v3.oas.models.media.Schema.getTypes()" is null
> at
> org.apache.camel.component.rest.openapi.OpenApiUtils.isArrayType(OpenApiUtils.java:225)
> at
> org.apache.camel.component.rest.openapi.OpenApiUtils.loadBindingClassForJson(OpenApiUtils.java:196)
> at
> org.apache.camel.component.rest.openapi.OpenApiUtils.loadBindingClass(OpenApiUtils.java:175)
> at
> org.apache.camel.component.rest.openapi.OpenApiUtils.findClass(OpenApiUtils.java:158)
> at
> org.apache.camel.component.rest.openapi.OpenApiUtils.manageRequestBody(OpenApiUtils.java:133)
> at
> org.apache.camel.component.rest.openapi.RestOpenApiProcessor.createRestBindingConfiguration(RestOpenApiProcessor.java:220)
> at
> org.apache.camel.component.rest.openapi.RestOpenApiProcessor.doInit(RestOpenApiProcessor.java:160)
> at
> org.apache.camel.support.service.BaseService.init(BaseService.java:85)
> at
> org.apache.camel.support.service.ServiceHelper.initService(ServiceHelper.java:84)
> at
> org.apache.camel.support.service.ServiceHelper.initService(ServiceHelper.java:101)
> at
> org.apache.camel.support.DefaultConsumer.doInit(DefaultConsumer.java:223)
> at
> org.apache.camel.component.platform.http.DefaultPlatformHttpConsumer.doInit(DefaultPlatformHttpConsumer.java:69)
> at
> org.apache.camel.support.service.BaseService.init(BaseService.java:85)
> at
> org.apache.camel.support.service.BaseService.start(BaseService.java:115)
> at
> org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:126)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3346)
> at
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRouteConsumers(InternalRouteStartupManager.java:428)
> at
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartRouteConsumers(InternalRouteStartupManager.java:344)
> at
> org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:222)
> at
> org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:132)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2952)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2565)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2520)
> at
> org.apache.camel.support.service.BaseService.start(BaseService.java:123)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2119)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)