Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-16734

Recipient list does not wait for processing an exchange by recipients and ignores aggregation strategy when route is transacted.

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.7.4, 3.7.2, 3.7.3, 3.8.0, 3.10.0
    • 3.11.0
    • camel-core
    • None
    • Unknown


      When migrating to Camel 3.7.2 I've noticed that there is a problem with the recipient list in transacted routes.
      Recipient list does not wait for processing an exchange by recipients and ignores aggregation strategy when :

      • route is transacted,
      • doTry()...doCatch() is used,
      • processing by the recipient takes longer.

      The bug was discovered in version 3.7.2 but it's also present in the newest versions 3.10.0 and 3.7.4 (LTS).

      Here is a test, which reproduces the problem:

      public class TransactedRecipientListTest extends TransactionClientDataSourceSupport {
          public void testRecipientList() throws Exception {
              System.out.println("Running on version : " + context.getVersion());
              String response = template.requestBody("direct:start", "Hello World", String.class);
              assertEquals("Hi !!!", response);
          protected RouteBuilder createRouteBuilder() throws Exception {
              return new RouteBuilder() {
                  public void configure() throws Exception {
                      // NOTE commenting transacted(), doTry() or delay() make this test green in Camel 3.7.4 and above
                      // however commenting delay() doest not make this test green in Camel 3.7.2
                      // NOTE doCatch() skipped here to keep test as simple as possible
                              .transform(constant("Hi !!!"));

      This test is passing with Camel 3.7.1 and below, but it's failing with Camel 3.7.2 and above.
      However it's also passing with Camel 3.9.0 !

      It's also passing on 'main' and '3.7.x' branches after reverting commit b1b5b7d0 : "CAMEL-16550: camel-core - Split and Aggregate with Transacted may cause thread to stuck".

      I've checked a history of MulticastProcessor class and it looks that:


        Issue Links


          This comment will be Viewable by All Users Viewable by All Users


            davsclaus Claus Ibsen
            kmackowiak Krzysztof Mackowiak
            0 Vote for this issue
            2 Start watching this issue



              Issue deployment