You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Federico Mariani (Jira)" <ji...@apache.org> on 2026/07/15 14:44:00 UTC
[jira] [Created] (CAMEL-24116) camel-rest-openapi: RestOpenApiProcessor doInit/doStop are dead code since the advice conversion (CAMEL-22742) - services never stopped, stale platform-http registrations on route reload
Federico Mariani created CAMEL-24116:
----------------------------------------
Summary: camel-rest-openapi: RestOpenApiProcessor doInit/doStop are dead code since the advice conversion (CAMEL-22742) - services never stopped, stale platform-http registrations on route reload
Key: CAMEL-24116
URL: https://issues.apache.org/jira/browse/CAMEL-24116
Project: Camel
Issue Type: Bug
Components: camel-rest-openapi
Affects Versions: 4.21.0
Reporter: Federico Mariani
h3. Problem
Commit bd63a7eb8213 (CAMEL-22742) moved {{RestOpenApiProcessor}} out of the consumer's processor chain into {{RestOpenApiProcessorAdvice}} added via {{ip.addAdvice(...)}} (RestOpenApiEndpoint.java:233-246). Previously {{DefaultConsumer}} drove the processor's lifecycle; advices get no lifecycle management, and nothing else builds/inits/starts/stops the processor as a service (verified: no {{ServiceHelper}} call on it anywhere in the endpoint). Consequences:
* {{doInit()}} ({{trySetCamelContext(restOpenapiProcessorStrategy, ...)}}, RestOpenApiProcessor.java:146-149) never runs. The default strategy was compensated in the same commit ({{RestOpenApiComponent.doInit}}), but a *custom* {{restOpenapiProcessorStrategy=#myStrategy}} (documented advanced option) that is not context-injected by its registry NPEs in {{validateOpenApi}} at {{camelContext.getRoutes()}}.
* {{doStop()}} (RestOpenApiProcessor.java:258-268) never runs anywhere: the per-operation {{RestBindingAdvice}} services and the strategy are never stopped - {{DefaultRestOpenapiProcessorStrategy.doStop}} (producer-cache stop + {{PlatformHttpComponent.removeHttpEndpoint(uris)}}) is unreachable.
h3. Failure scenario
Stopping or removing a rest-openapi route leaks the producer cache and leaves stale HTTP endpoint registrations in {{PlatformHttpComponent}} (visible in the dev console/registry, re-registered as duplicates on each route reload, e.g. camel-jbang {{--dev}}).
h3. Fix direction
Have the endpoint/consumer own the processor as a child service ({{ServiceHelper.initService/stopService}} wired from the consumer), or give {{RestOpenApiProcessorAdvice}} the advice-service pattern and register it with the consumer.
----
_This issue was researched and filed by Claude Code on behalf of [~croway] (GitHub: Croway), as part of a deep code review of camel-rest-openapi and camel-openapi-java on main (4.22.0-SNAPSHOT). Full findings document available on request._
--
This message was sent by Atlassian Jira
(v8.20.10#820010)