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

gnodet pushed a commit to branch sumptuous-paradox
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 4ff38ffffd62e69c32650afad5c5b37e4bb60571
Author: Guillaume Nodet <[email protected]>
AuthorDate: Mon Mar 23 21:29:08 2026 +0100

    CAMEL-23230: Force System.exit() in Main/KameletMain to ensure JVM 
terminates
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 core/camel-main/src/main/java/org/apache/camel/main/Main.java      | 7 +++----
 .../src/main/java/org/apache/camel/main/KameletMain.java           | 7 +++----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/core/camel-main/src/main/java/org/apache/camel/main/Main.java 
b/core/camel-main/src/main/java/org/apache/camel/main/Main.java
index b0e8a40a6f4c..9dbc1507a872 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/Main.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/Main.java
@@ -68,10 +68,9 @@ public class Main extends MainCommandLineSupport {
         Main main = new Main();
         instance = main;
         int code = main.run(args);
-        if (code != 0) {
-            System.exit(code);
-        }
-        // normal exit
+        // force exit to ensure the JVM terminates even if
+        // components have non-daemon threads still running (e.g. RabbitMQ)
+        System.exit(code);
     }
 
     /**
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
index deda5b3178f2..0b9be895dc08 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
@@ -167,10 +167,9 @@ public class KameletMain extends MainCommandLineSupport {
     public static void main(String... args) throws Exception {
         KameletMain main = new KameletMain();
         int code = main.run(args);
-        if (code != 0) {
-            System.exit(code);
-        }
-        // normal exit
+        // force exit to ensure the JVM terminates even if
+        // components have non-daemon threads still running (e.g. RabbitMQ)
+        System.exit(code);
     }
 
     @Override

Reply via email to