This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new d8728bb  CAMEL-17064: Reduce unit test flakes. (#6585)
d8728bb is described below

commit d8728bbc054ec17f513d5d997e8f256626c9ef69
Author: klease <38634989+kle...@users.noreply.github.com>
AuthorDate: Thu Dec 23 14:40:37 2021 +0100

    CAMEL-17064: Reduce unit test flakes. (#6585)
    
    Address issues described in subtasks of CAMEL-17064 which cause some tests 
to fail
    on the first test run.
    Most cases are related to use of timeouts which are not reliable in several
    tests are run in parallel. The junit @Isolated notation has been added to 
these
    tests to ensure that they are not run at the same time as others.
    DurationRoutePolicy test cases are improved by adding a delay before 
starting the timer.
    AggregateTimeoutWith{No}ExecutorServiceTest are improved by ensuring that 
only
    threads for the relevant context are counted.
    TwoRouteSuspendResumeTest was checking a queue for seda:bar which is not a 
route in
    this tests; changed the test to check the seda:foo queue instead.
---
 .../camel/component/file/strategy/FileChangedReadLockTest.java     | 2 ++
 .../camel/component/seda/SedaDefaultDiscardWhenFullTest.java       | 6 ++++--
 .../org/apache/camel/component/seda/SedaDiscardWhenFullTest.java   | 6 ++++--
 .../apache/camel/component/timer/TimerSuspendCamelContextTest.java | 2 ++
 .../java/org/apache/camel/impl/DurationRoutePolicyFactoryTest.java | 2 +-
 .../org/apache/camel/impl/DurationRoutePolicyMaxSecondsTest.java   | 2 +-
 .../test/java/org/apache/camel/impl/TwoRouteSuspendResumeTest.java | 2 +-
 .../org/apache/camel/processor/BeanRecipientListTimeoutTest.java   | 2 ++
 .../processor/DeadLetterChannelRedeliverWithDelayBlockingTest.java | 2 ++
 .../camel/processor/MulticastParallelAllTimeoutAwareTest.java      | 2 ++
 .../camel/processor/MulticastParallelStreamingTwoTimeoutTest.java  | 2 ++
 .../apache/camel/processor/MulticastParallelTimeoutAwareTest.java  | 2 ++
 .../org/apache/camel/processor/MulticastParallelTimeoutTest.java   | 2 ++
 .../camel/processor/MulticastParallelTwoTimeoutMiddleTest.java     | 2 ++
 .../apache/camel/processor/MulticastParallelTwoTimeoutTest.java    | 2 ++
 .../java/org/apache/camel/processor/SplitParallelTimeoutTest.java  | 2 ++
 .../ThrottlingExceptionRoutePolicyHalfOpenHandlerTest.java         | 2 ++
 .../processor/ThrottlingExceptionRoutePolicyHalfOpenTest.java      | 2 ++
 .../aggregator/AggregatePreCompleteAwareStrategyTimeoutTest.java   | 2 ++
 .../aggregator/AggregateTimeoutWithExecutorServiceTest.java        | 7 ++++---
 .../aggregator/AggregateTimeoutWithNoExecutorServiceTest.java      | 2 +-
 21 files changed, 44 insertions(+), 11 deletions(-)

diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/file/strategy/FileChangedReadLockTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/file/strategy/FileChangedReadLockTest.java
index 4caa5a8..0f782de 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/file/strategy/FileChangedReadLockTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/file/strategy/FileChangedReadLockTest.java
@@ -25,11 +25,13 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+@Isolated("Does not play well with parallel unit test execution")
 public class FileChangedReadLockTest extends ContextTestSupport {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(FileChangedReadLockTest.class);
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/seda/SedaDefaultDiscardWhenFullTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/seda/SedaDefaultDiscardWhenFullTest.java
index 605691b..422a483 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/seda/SedaDefaultDiscardWhenFullTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/seda/SedaDefaultDiscardWhenFullTest.java
@@ -37,8 +37,10 @@ public class SedaDefaultDiscardWhenFullTest extends 
ContextTestSupport {
         // start route
         context.getRouteController().startRoute("foo");
 
-        // wait a little bit until the route is started and the first messages 
are consumed
-        Thread.sleep(100);
+        // wait until  at least 1 message has been consumed
+        while (mock.getReceivedCounter() < 1) {
+            Thread.sleep(100);
+        }
 
         // and now there is room for me
         template.sendBody("seda:foo", "Camel World");
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/seda/SedaDiscardWhenFullTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/seda/SedaDiscardWhenFullTest.java
index 24cae91..31a2943 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/seda/SedaDiscardWhenFullTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/seda/SedaDiscardWhenFullTest.java
@@ -36,8 +36,10 @@ public class SedaDiscardWhenFullTest extends 
ContextTestSupport {
         // start route
         context.getRouteController().startRoute("foo");
 
-        // wait a little bit for flaky CI
-        Thread.sleep(10);
+        // wait until  at least 1 message has been consumed
+        while (mock.getReceivedCounter() < 1) {
+            Thread.sleep(100);
+        }
 
         // and now there is room for me
         template.sendBody("seda:foo?discardWhenFull=true", "Camel World");
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/timer/TimerSuspendCamelContextTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/timer/TimerSuspendCamelContextTest.java
index 31aed2a..8380f13 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/timer/TimerSuspendCamelContextTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/timer/TimerSuspendCamelContextTest.java
@@ -20,7 +20,9 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
+@Isolated("Flaky when run in parallel test mode")
 public class TimerSuspendCamelContextTest extends ContextTestSupport {
 
     @Test
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/impl/DurationRoutePolicyFactoryTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/impl/DurationRoutePolicyFactoryTest.java
index fc940315..bfae2a6 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/impl/DurationRoutePolicyFactoryTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/impl/DurationRoutePolicyFactoryTest.java
@@ -57,7 +57,7 @@ public class DurationRoutePolicyFactoryTest extends 
ContextTestSupport {
 
                 getContext().addRoutePolicyFactory(factory);
 
-                from("timer:foo?period=100").routeId("foo").to("mock:foo");
+                
from("timer:foo?delay=100&period=100").routeId("foo").to("mock:foo");
             }
         };
     }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/impl/DurationRoutePolicyMaxSecondsTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/impl/DurationRoutePolicyMaxSecondsTest.java
index 3aa4267..4536ea1 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/impl/DurationRoutePolicyMaxSecondsTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/impl/DurationRoutePolicyMaxSecondsTest.java
@@ -54,7 +54,7 @@ public class DurationRoutePolicyMaxSecondsTest extends 
ContextTestSupport {
                 DurationRoutePolicy policy = new DurationRoutePolicy();
                 policy.setMaxSeconds(2);
 
-                
from("timer:foo?period=100").routeId("foo").routePolicy(policy).to("mock:foo");
+                
from("timer:foo?delay=100&period=100").routeId("foo").routePolicy(policy).to("mock:foo");
             }
         };
     }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/impl/TwoRouteSuspendResumeTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/impl/TwoRouteSuspendResumeTest.java
index e3dd305..4ba040c 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/impl/TwoRouteSuspendResumeTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/impl/TwoRouteSuspendResumeTest.java
@@ -51,7 +51,7 @@ public class TwoRouteSuspendResumeTest extends 
ContextTestSupport {
 
         // need to give seda consumer thread time to idle
         await().atMost(1, TimeUnit.SECONDS).until(() -> {
-            return context.getEndpoint("seda:bar", 
SedaEndpoint.class).getQueue().size() == 0;
+            return context.getEndpoint("seda:foo", 
SedaEndpoint.class).getQueue().size() == 0;
         });
 
         template.sendBody("seda:foo", "B");
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/BeanRecipientListTimeoutTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/BeanRecipientListTimeoutTest.java
index 512334c..d1781ea 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/BeanRecipientListTimeoutTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/BeanRecipientListTimeoutTest.java
@@ -24,10 +24,12 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spi.Registry;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
+@Isolated("Parallel execution can cause timeout before all multicast messages 
are sent")
 public class BeanRecipientListTimeoutTest extends ContextTestSupport {
 
     private volatile Exchange receivedExchange;
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelRedeliverWithDelayBlockingTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelRedeliverWithDelayBlockingTest.java
index 5c576d3..762a3cf 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelRedeliverWithDelayBlockingTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelRedeliverWithDelayBlockingTest.java
@@ -26,12 +26,14 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.parallel.Isolated;
 
 /**
  * Unit test to verify that using DLC with redelivery and delays with blocking 
threads. As threads comes cheap these
  * days in the modern JVM its no biggie. And for transactions you should use 
the same thread anyway.
  */
 @Timeout(20)
+@Isolated("Does not play well with parallel execution")
 public class DeadLetterChannelRedeliverWithDelayBlockingTest extends 
ContextTestSupport {
 
     private static int counter;
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelAllTimeoutAwareTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelAllTimeoutAwareTest.java
index 37c0218..61196f2 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelAllTimeoutAwareTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelAllTimeoutAwareTest.java
@@ -22,10 +22,12 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
+@Isolated("Does not play well with parallel execution")
 public class MulticastParallelAllTimeoutAwareTest extends ContextTestSupport {
 
     private volatile Exchange receivedExchange;
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelStreamingTwoTimeoutTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelStreamingTwoTimeoutTest.java
index 59dde9b..80de633 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelStreamingTwoTimeoutTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelStreamingTwoTimeoutTest.java
@@ -22,7 +22,9 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
+@Isolated("Short timeouts cause problems with parallel text execution")
 public class MulticastParallelStreamingTwoTimeoutTest extends 
ContextTestSupport {
 
     @Test
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTimeoutAwareTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTimeoutAwareTest.java
index 3c3a9c0..28fbbfd 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTimeoutAwareTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTimeoutAwareTest.java
@@ -22,10 +22,12 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
+@Isolated("Does not play well with parallel execution")
 public class MulticastParallelTimeoutAwareTest extends ContextTestSupport {
 
     private volatile Exchange receivedExchange;
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTimeoutTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTimeoutTest.java
index 26e7528..5885a58 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTimeoutTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTimeoutTest.java
@@ -22,7 +22,9 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
+@Isolated("Short timeouts cause problems with parallel text execution")
 public class MulticastParallelTimeoutTest extends ContextTestSupport {
 
     @Test
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTwoTimeoutMiddleTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTwoTimeoutMiddleTest.java
index 5f92131..453cca0 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTwoTimeoutMiddleTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTwoTimeoutMiddleTest.java
@@ -22,7 +22,9 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
+@Isolated("Short timeouts cause problems with parallel text execution")
 public class MulticastParallelTwoTimeoutMiddleTest extends ContextTestSupport {
 
     @Test
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTwoTimeoutTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTwoTimeoutTest.java
index a106f21..19fe61b 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTwoTimeoutTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/MulticastParallelTwoTimeoutTest.java
@@ -22,7 +22,9 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
+@Isolated("Does not play well with parallel execution")
 public class MulticastParallelTwoTimeoutTest extends ContextTestSupport {
 
     @Test
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
index 0f87591..40fc7ee 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/SplitParallelTimeoutTest.java
@@ -22,10 +22,12 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
+@Isolated("Short timeouts cause problems with parallel text execution")
 public class SplitParallelTimeoutTest extends ContextTestSupport {
 
     private volatile Exchange receivedExchange;
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyHalfOpenHandlerTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyHalfOpenHandlerTest.java
index 89a92a7..50d065b 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyHalfOpenHandlerTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyHalfOpenHandlerTest.java
@@ -30,11 +30,13 @@ import 
org.apache.camel.throttling.ThrottlingExceptionHalfOpenHandler;
 import org.apache.camel.throttling.ThrottlingExceptionRoutePolicy;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.awaitility.Awaitility.await;
 
+@Isolated("Does not play well with parallel execution")
 public class ThrottlingExceptionRoutePolicyHalfOpenHandlerTest extends 
ContextTestSupport {
     private static Logger log = 
LoggerFactory.getLogger(ThrottlingExceptionRoutePolicyHalfOpenHandlerTest.class);
 
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyHalfOpenTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyHalfOpenTest.java
index 42dba2f..0237280 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyHalfOpenTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingExceptionRoutePolicyHalfOpenTest.java
@@ -29,11 +29,13 @@ import org.apache.camel.support.service.ServiceSupport;
 import org.apache.camel.throttling.ThrottlingExceptionRoutePolicy;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.awaitility.Awaitility.await;
 
+@Isolated("Does not play well with parallel execution")
 public class ThrottlingExceptionRoutePolicyHalfOpenTest extends 
ContextTestSupport {
     private static Logger log = 
LoggerFactory.getLogger(ThrottlingExceptionRoutePolicyHalfOpenTest.class);
 
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregatePreCompleteAwareStrategyTimeoutTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregatePreCompleteAwareStrategyTimeoutTest.java
index 815803e..48a540b 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregatePreCompleteAwareStrategyTimeoutTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregatePreCompleteAwareStrategyTimeoutTest.java
@@ -20,7 +20,9 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.processor.BodyInPreCompleteAggregatingStrategy;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
 
+@Isolated("Does not play well with parallel execution")
 public class AggregatePreCompleteAwareStrategyTimeoutTest extends 
ContextTestSupport {
 
     @Test
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateTimeoutWithExecutorServiceTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateTimeoutWithExecutorServiceTest.java
index 5b041c7..e241448 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateTimeoutWithExecutorServiceTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateTimeoutWithExecutorServiceTest.java
@@ -36,7 +36,7 @@ public class AggregateTimeoutWithExecutorServiceTest extends 
ContextTestSupport
 
     @Test
     public void testThreadNotUsedForEveryAggregatorWithCustomExecutorService() 
throws Exception {
-        assertTrue(aggregateThreadsCount() < NUM_AGGREGATORS,
+        assertTrue(aggregateThreadsCount(context.getName()) < NUM_AGGREGATORS,
                 "There should not be a thread for every aggregator when using 
a shared thread pool");
 
         // sanity check to make sure were testing routes that work
@@ -54,13 +54,14 @@ public class AggregateTimeoutWithExecutorServiceTest 
extends ContextTestSupport
         assertMockEndpointsSatisfied();
     }
 
-    public static int aggregateThreadsCount() {
+    public static int aggregateThreadsCount(String contextName) {
         int count = 0;
         ThreadGroup threadGroup = Thread.currentThread().getThreadGroup();
         Thread[] threads = new Thread[threadGroup.activeCount()];
         threadGroup.enumerate(threads);
         for (Thread thread : threads) {
-            if (thread != null && 
thread.getName().contains(AggregateProcessor.AGGREGATE_TIMEOUT_CHECKER)) {
+            if (thread != null && 
thread.getName().contains(AggregateProcessor.AGGREGATE_TIMEOUT_CHECKER)
+                    && thread.getName().contains(contextName)) {
                 ++count;
             }
         }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateTimeoutWithNoExecutorServiceTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateTimeoutWithNoExecutorServiceTest.java
index 7ea09a3..cc838db 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateTimeoutWithNoExecutorServiceTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateTimeoutWithNoExecutorServiceTest.java
@@ -28,7 +28,7 @@ public class AggregateTimeoutWithNoExecutorServiceTest 
extends ContextTestSuppor
 
     @Test
     public void 
testThreadUsedForEveryAggregatorWhenDefaultExecutorServiceUsed() throws 
Exception {
-        
assertTrue(AggregateTimeoutWithExecutorServiceTest.aggregateThreadsCount()
+        
assertTrue(AggregateTimeoutWithExecutorServiceTest.aggregateThreadsCount(context.getName())
                    >= AggregateTimeoutWithExecutorServiceTest.NUM_AGGREGATORS,
                 "There should be a thread for every aggregator when using 
defaults");
 

Reply via email to