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

Recipient list with parallel processing doesn't reuse aggregation threads

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.6.0
    • 2.7.0
    • camel-core
    • None

    Description

      When I'm using recipient list in parallel mode aggregateExecutorService in MulticastProcessor doesn't reuse threads and is creating one new thread per each request.

      To reproduce this bug simply add a loop to RecipientListParallelTest.testRecipientListParallel() test:

      RecipientListParallelTest.java
          public void testRecipientListParallel() throws Exception {
              for (int i = 0; i < 10000; i++) {
                  MockEndpoint mock = getMockEndpoint("mock:result");
                  mock.reset();
                  mock.expectedBodiesReceivedInAnyOrder("c", "b", "a");
                  template.sendBodyAndHeader("direct:start", "Hello World", "foo", "direct:a,direct:b,direct:c");
                  assertMockEndpointsSatisfied();
              }
          }
      

      In the logs you can find:

      2011-02-28 13:22:30,984 [) thread #0 - RecipientListProcessor-AggregateTask] DEBUG MulticastProcessor             - Done aggregating 3 exchanges on the fly.
      2011-02-28 13:22:31,984 [) thread #4 - RecipientListProcessor-AggregateTask] DEBUG MulticastProcessor             - Done aggregating 3 exchanges on the fly.
      2011-02-28 13:22:32,984 [) thread #8 - RecipientListProcessor-AggregateTask] DEBUG MulticastProcessor             - Done aggregating 3 exchanges on the fly.
      2011-02-28 13:22:34,000 [ thread #12 - RecipientListProcessor-AggregateTask] DEBUG MulticastProcessor             - Done aggregating 3 exchanges on the fly.
      2011-02-28 13:22:35,000 [ thread #14 - RecipientListProcessor-AggregateTask] DEBUG MulticastProcessor             - Done aggregating 3 exchanges on the fly.
      2011-02-28 13:22:36,000 [ thread #15 - RecipientListProcessor-AggregateTask] DEBUG MulticastProcessor             - Done aggregating 3 exchanges on the fly.
      2011-02-28 13:22:37,015 [ thread #16 - RecipientListProcessor-AggregateTask] DEBUG MulticastProcessor             - Done aggregating 3 exchanges on the fly.
      2011-02-28 13:22:38,015 [ thread #17 - RecipientListProcessor-AggregateTask] DEBUG MulticastProcessor             - Done aggregating 3 exchanges on the fly.
      

      Attachments

        Activity

          People

            davsclaus Claus Ibsen
            marcin kolda Marcin Kolda
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: