Papa John created CAMEL-20357:
---------------------------------
Summary: throttle EIP doesn't work as expected when it's in a
loopDoWhile
Key: CAMEL-20357
URL: https://issues.apache.org/jira/browse/CAMEL-20357
Project: Camel
Issue Type: Bug
Components: camel-core
Affects Versions: 4.3.0
Reporter: Papa John
I just upgraded my project to Apache Camel 4.3.0, and my code stop to work as
expected.
It seems there was some changes to the `throttle EIP` -- it's now throttling
based on the number of concurrent exchanges.
My route uses a {{`{*}loopDoWhile{*}`}} to loop an exchange over and over, so
in a sense, the concurrent exchange should always be zero (and the inflight
exchange is actually zero).
However, my loop will stop when it reached the max number of concurrent
exchanges I set for the thottler.
For example, in the following code, the loop will stop at 10th iteration. It
seems the new changes didn't put loop DSL into consideration...
{{import org.apache.camel.builder.RouteBuilder;
public class Test extends RouteBuilder \{
@Override
public void configure() throws Exception {
// Write your routes here, for example:
from("timer:java?delay=1000&repeatCount=1")
.loopDoWhile(constant(true)).breakOnShutdown()
.throttle(10)
.setBody()
.simple("Hello Camel from ${routeId}")
.log("${body}");
}
}}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)