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)

Reply via email to