shashank created CAMEL-26463:
--------------------------------

             Summary: camel-undertow - removing a plain consumer that never 
started unregisters the path of a running consumer of the same path
                 Key: CAMEL-26463
                 URL: https://issues.apache.org/jira/browse/CAMEL-26463
             Project: Camel
          Issue Type: Bug
          Components: camel-undertow
            Reporter: shashank
            Assignee: shashank


Follow-up of CAMEL-26460 (path templates next to a static path), named in its 
review; the same on main.

{{UndertowConsumer.doStop}} always unregisters its path from the host, and 
{{BaseService.stop()}} runs {{doStop()}} also for a consumer that never started 
(a route with {{autoStartup=false}} that is removed, or a consumer whose start 
failed). The path handlers count the registrations per path and method 
({{CamelMethodHandler}}), so such a consumer decrements the count of another, 
running consumer of the same path:
* route {{a}} runs {{undertow:http://0.0.0.0:8080/dup}}, route {{b}} consumes 
the same path with {{autoStartup(false)}} and is removed: the handler of {{a}} 
goes, and when these were the only paths of the server, {{DefaultUndertowHost}} 
stops the server: {{a}} still runs and its requests get "connection refused";
* a path template {{/orders/\{id\}}} and a static {{/orders}} running, a 
second, never started {{/orders}} route removed: {{/orders}} then reaches the 
template route.

CAMEL-26083 fixed the same pairing for rest-dsl consumers only 
({{RestRootHandler}} registers and unregisters the rest path only when the 
consumer was added or removed).

*Proposal*
{{UndertowConsumer}} unregisters only what it registered (remember the 
registration made in {{doStart}}, clear it in {{doStop}}), as for the rest-dsl 
consumers. Tests: the two cases above, and a consumer whose start failed.

_Filed with Claude Code on behalf of allthingssecurity._



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to