Claus Ibsen created CAMEL-25045:
-----------------------------------
Summary: camel-core - Java DSL builders: fix bugs found in a deep
review
Key: CAMEL-25045
URL: https://issues.apache.org/jira/browse/CAMEL-25045
Project: Camel
Issue Type: Bug
Components: camel-core
Reporter: Claus Ibsen
A deep review of the Java DSL builders (ProcessorDefinition,
ExpressionClauseSupport) found the bugs below. Each one was reproduced against
4.23.0-SNAPSHOT and has a test that fails without the fix.
# *{{choice().note(...)}} fails with StackOverflowError.* When the choice has
no when/otherwise yet, note() called itself instead of setNote (CAMEL-22576).
# *{{throttle(Expression, long correlationExpressionKey)}} ignores the key.* It
used the maximum-requests expression as the correlation expression too, so
exchanges were grouped by the maximum value. Regression in 4.19.
# *{{onException(e1, e2, e3)}} in a route configuration drops the third
exception.* It passed {{e2}} twice, so the third exception type was not handled
(CAMEL-22529).
# *{{simple(text, resultType, pretty, trimResult)}} ignores trimResult.* The
three-argument variant sets it.
# *{{endDoTry()}} from a block inside doCatch or doFinally fails with
ClassCastException.* For example
{{doCatch(E.class).filter(...).to(...).endDoTry().doFinally()}}: end() returns
the catch, not the try.
# *{{enrichWith(EndpointProducerBuilder)}} makes the uri a constant.* The other
endpoint-builder overloads of enrich/enrichWith use a simple expression, so
{{enrichWith(direct("${header.target}"))}} was not dynamic.
# *The {{type:}} prefix of {{bean(...)}} only works in {{bean(Object, String
method)}}.* {{bean("type:com.foo.MyBean")}} and the BeanScope variants looked
up a bean named "type:com.foo.MyBean" (CAMEL-19244).
_Claude Code on behalf of Claus Ibsen_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)