This is an automated email from the ASF dual-hosted git repository.
gnodet 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 bc0f152fef49 CAMEL-23230: Force System.exit() in Main/KameletMain to
ensure JVM terminates
bc0f152fef49 is described below
commit bc0f152fef49ef426d7efad4b182f86a4e49e45c
Author: Guillaume Nodet <[email protected]>
AuthorDate: Tue Mar 24 15:12:47 2026 +0100
CAMEL-23230: Force System.exit() in Main/KameletMain to ensure JVM
terminates
When durationMaxIdleSeconds triggers shutdown, the exit code is 0 (default
durationHitExitCode), so System.exit() was skipped and non-daemon threads
from components like RabbitMQ kept the JVM alive.
- Always call System.exit(code) in Main.main() and KameletMain.main()
after run() returns, consistent with camel-spring-main which already
does this unconditionally
---
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