Claus Ibsen created CAMEL-25064:
-----------------------------------
Summary: camel-management - EIP and service MBeans: fix bugs found
in a deep review
Key: CAMEL-25064
URL: https://issues.apache.org/jira/browse/CAMEL-25064
Project: Camel
Issue Type: Bug
Components: camel-core
Reporter: Claus Ibsen
A deep review of the EIP and service MBeans in camel-management found the bugs
below. Each one was reproduced against 4.23.0-SNAPSHOT and has a test in
ManagedTabularDataEdgeCasesTest that fails without the fix.
Most of them are tabular data keyed by a value that is not unique, so the JMX
operation failed with KeyAlreadyExistsException:
# *extendedInformation of a Choice EIP with two whens that have the same
predicate.*
# *extendedInformation of a doTry with two doCatch of the same exception* (such
as one with onWhen, the documented pattern) once both have caught it.
# *listTasks of the task manager registry with two tasks of the same name*
(such as the reconnect tasks of a Kafka consumer with consumersCount > 1, or
tasks without a name).
# *extendedInformation of toD, enrich, pollEnrich, recipient list, routing
slip, dynamic router, wire tap and poll* (Extended statistics) when endpoints
only differ in a secret, which is masked. Their hits are now merged per masked
url.
# *listStatistics of the exchange factory manager with two routes consuming the
same uri.*
# *listEndpoints of the endpoint registry with endpoints that only differ in a
secret.* It also reported static=false and dynamic=false for every endpoint
with a secret, as it looked them up by the masked uri.
And:
# *extendedInformation of a Choice EIP pairs the wrong predicate with the
matches when a when is disabled* (the processor has no filter for a disabled
when), and shows a disabled otherwise.
# *ForceCompletionOnStop of the aggregate MBean returns
CompletionFromBatchConsumer.*
The tabular data of choice, doTry and listTasks have a new index item as their
key; the endpoint utilization code of the eight EIP MBeans is now in one helper.
*Not changed (for a later look)*
* listEndpointServices of the endpoint service registry can have the same key
for two routes consuming the same service.
* The component verifier maps INCOMPLETE_PARAMETER_GROUP to
ILLEGAL_PARAMETER_GROUP_COMBINATION.
* The minimum/maximum processing time statistics can lose an update under
concurrency.
* The notification types advertised by the event notifier MBean do not match
the notifications it sends.
_Claude Code on behalf of Claus Ibsen_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)