[
https://issues.apache.org/jira/browse/CAMEL-26887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-26887 started by shashank.
----------------------------------------
> camel-zookeeper-master - ZookeeperGroupSupport reuses the client it closed,
> closes a group factory of the registry, and ignores zookeeper.password
> --------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-26887
> URL: https://issues.apache.org/jira/browse/CAMEL-26887
> Project: Camel
> Issue Type: Bug
> Components: camel-zookeeper-master
> Reporter: shashank
> Assignee: shashank
> Priority: Minor
>
> Follow-ups named in CAMEL-26870; on main. {{ZookeeperGroupSupport}} is the
> base of the group listeners of the master consumer and of
> {{MasterRoutePolicy}}, and of the component's own support.
> * *A closed client is reused after a restart.* When no curator is set, the
> group factory strategy calls {{call()}}, which builds and starts a
> {{CuratorFramework}} and stores it in the {{curator}} field; the group
> factory closes it when the support stops. A start of the same support after
> its stop finds the closed client in the field and uses it: the group cannot
> connect. That is the component's own support when the component instance
> outlives a CamelContext stop (a {{MasterComponent}} bean of the registry,
> started again), or a {{ZookeeperGroupSupport}} used directly; a route restart
> creates a new support.
> * *A group factory of the registry is closed by every stop.* A
> {{ManagedGroupFactory}} found in the registry (or set on the support) is
> closed and dropped in {{doStop}}, although the component and all consumers
> and route policies find the same bean: the stop of one route closes the
> factory (and, when it owns it, the client) of the others.
> * *The {{zookeeper.password}} system property is ignored.* {{call()}} reads
> it when no password is configured but discards the value
> ({{System.getProperty(ZOOKEEPER_PASSWORD);}}), so the client connects without
> the digest authorization.
> *Proposal*: remember the client {{call()}} created and the group factory
> {{doStart}} created; {{doStop}} closes and drops only those (a start after
> the stop creates new ones), and keeps a client or a factory of the registry
> or set by the user; assign the system property to the password.
> _Filed with Claude Code on behalf of allthingssecurity._
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)