You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/12/01 15:14:08 UTC

(camel) branch main updated: CAMEL-20158 await executor termination after shutdown (#12291)

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 9014f4436d2 CAMEL-20158 await executor termination after shutdown (#12291)
9014f4436d2 is described below

commit 9014f4436d2d1c8ae5ab0fca942f447a32f7eb68
Author: Jono Morris <jo...@apache.org>
AuthorDate: Sat Dec 2 04:14:02 2023 +1300

    CAMEL-20158 await executor termination after shutdown (#12291)
---
 .../org/apache/camel/processor/ThrottlerTest.java  | 23 ++++++++++++++--------
 .../camel/processor/ThrottlingGroupingTest.java    | 17 ++++++++++++----
 2 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlerTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlerTest.java
index 7072bb1d110..b49770d1f13 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlerTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlerTest.java
@@ -31,6 +31,7 @@ import org.junit.jupiter.api.condition.DisabledOnOs;
 import org.junit.jupiter.api.condition.OS;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 // time-bound that does not run well in shared environments
 @DisabledOnOs(OS.WINDOWS)
@@ -56,8 +57,7 @@ public class ThrottlerTest extends ContextTestSupport {
             }
             assertMockEndpointsSatisfied();
         } finally {
-            executor.awaitTermination(1000, TimeUnit.MILLISECONDS);
-            executor.shutdownNow();
+            shutdownAndAwait(executor);
         }
     }
 
@@ -84,8 +84,7 @@ public class ThrottlerTest extends ContextTestSupport {
         try {
             sendMessagesWithHeaderExpression(executor, resultEndpoint, CONCURRENT_REQUESTS, MESSAGE_COUNT);
         } finally {
-            executor.awaitTermination(1000, TimeUnit.MILLISECONDS);
-            executor.shutdownNow();
+            shutdownAndAwait(executor);
         }
     }
 
@@ -114,8 +113,7 @@ public class ThrottlerTest extends ContextTestSupport {
             resultEndpoint.reset();
             sendMessagesWithHeaderExpression(executor, resultEndpoint, 4, MESSAGE_COUNT);
         } finally {
-            executor.awaitTermination(1000, TimeUnit.MILLISECONDS);
-            executor.shutdownNow();
+            shutdownAndAwait(executor);
         }
     }
 
@@ -156,8 +154,7 @@ public class ThrottlerTest extends ContextTestSupport {
                 receivingEndpoint.assertIsSatisfied();
             }
         } finally {
-            executor.awaitTermination(1000, TimeUnit.MILLISECONDS);
-            executor.shutdownNow();
+            shutdownAndAwait(executor);
         }
     }
 
@@ -185,6 +182,16 @@ public class ThrottlerTest extends ContextTestSupport {
                 .forEach(b -> template.sendBody(endpoint, b));
     }
 
+    private void shutdownAndAwait(final ExecutorService executorService) {
+        executorService.shutdown();
+        try {
+            assertTrue(executorService.awaitTermination(10, TimeUnit.SECONDS),
+                    "Test ExecutorService shutdown is not expected to take longer than 10 seconds.");
+        } catch (InterruptedException e) {
+            fail("Test ExecutorService shutdown is not expected to be interrupted.");
+        }
+    }
+
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingGroupingTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingGroupingTest.java
index 2c11829333c..8639310ecdf 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingGroupingTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/ThrottlingGroupingTest.java
@@ -31,6 +31,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.Isolated;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 @Isolated
 public class ThrottlingGroupingTest extends ContextTestSupport {
@@ -109,8 +110,7 @@ public class ThrottlingGroupingTest extends ContextTestSupport {
                 receivingEndpoint.assertIsSatisfied();
             }
         } finally {
-            executor.awaitTermination(1000, TimeUnit.MILLISECONDS);
-            executor.shutdownNow();
+            shutdownAndAwait(executor);
         }
     }
 
@@ -123,8 +123,7 @@ public class ThrottlingGroupingTest extends ContextTestSupport {
         try {
             sendMessagesWithHeaderExpression(executor, resultEndpoint, CONCURRENT_REQUESTS, MESSAGE_COUNT);
         } finally {
-            executor.awaitTermination(1000, TimeUnit.MILLISECONDS);
-            executor.shutdownNow();
+            shutdownAndAwait(executor);
         }
     }
 
@@ -152,6 +151,16 @@ public class ThrottlingGroupingTest extends ContextTestSupport {
         resultEndpoint.assertIsSatisfied();
     }
 
+    private void shutdownAndAwait(final ExecutorService executorService) {
+        executorService.shutdown();
+        try {
+            assertTrue(executorService.awaitTermination(10, TimeUnit.SECONDS),
+                    "Test ExecutorService shutdown is not expected to take longer than 10 seconds.");
+        } catch (InterruptedException e) {
+            fail("Test ExecutorService shutdown is not expected to be interrupted.");
+        }
+    }
+
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {