Claus Ibsen created CAMEL-25108:
-----------------------------------

             Summary: camel-core - Component, endpoint and consumer base 
classes: fix bugs found in a deep review
                 Key: CAMEL-25108
                 URL: https://issues.apache.org/jira/browse/CAMEL-25108
             Project: Camel
          Issue Type: Bug
          Components: camel-core
            Reporter: Claus Ibsen


A review of the base classes of components (camel-support) found these bugs:

# With {{bridgeErrorHandler=true}}, an exchange that failed while being routed 
(and was already handled by the error handler of the route, such as an 
onException that does not mark it as handled) is bridged to the error handler a 
second time, so onException (and the dead letter channel) is invoked twice for 
the same failure, the second time with the body replaced by the error message. 
The bridge error handler is documented for errors when the consumer picks up 
messages. Long-standing (same in 4.16 and 4.18).
# A query parameter named {{hash}} is always removed from the endpoint uri 
(DefaultComponent), also when it is a regular parameter (such as for the http 
components). It is only meant for the special parameter the endpoint DSL adds 
to identify endpoints.
# When both {{bridgeErrorHandler=true}} and {{exceptionHandler}} are 
configured, the exceptionHandler is used, while the documentation says the 
exceptionHandler is not in use when bridgeErrorHandler is enabled.
# {{DefaultEndpoint.configureProperties}} fails with NullPointerException for 
an endpoint that is created without a component (such as a bean).
# {{DefaultComponent.getAndRemoveOrResolveReferenceParameter}} returns null 
instead of the default value when the value cannot be converted.
# {{DefaultComponent.resolveAndRemoveReferenceListParameter}} returns a List 
value as-is without resolving the references (such as {{List.of("#a", "#b")}} 
from the endpoint DSL).

Not changed:
* GlobalEndpointConfiguration.setAutowiredEnabled(false) alone has no effect 
(camel-main sets both).
* EndpointHelper.resolveReferenceParameter does not trim the value.

_Claude Code on behalf of Claus Ibsen_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to