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)

Reply via email to