From e304c214f7d6b2d2e2dd12a9a7676fe5f3e43af6 Mon Sep 17 00:00:00 2001 From: Claus Ibsen Date: Tue, 2 Jun 2026 22:45:20 +0200 Subject: [PATCH] CAMEL-23674: camel-jbang - Register ExportTypeConverter for Duration and Short types The ExportTypeConverter was registered as a fallback converter but not explicitly for Duration.class and Short.class. The built-in DurationConverter runs first and throws NumberFormatException on @@CamelMagicValue@@, preventing the fallback from being tried. Explicit registration overrides the built-in converter so the magic value is handled gracefully during export. Co-Authored-By: Claude Opus 4.6 Signed-off-by: Claus Ibsen --- .../src/main/java/org/apache/camel/main/KameletMain.java | 3 +++ 1 file changed, 3 insertions(+) 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 f9f797ba91ad3..4c27fd9b47a99 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 @@ -18,6 +18,7 @@ import java.io.File; import java.nio.file.Paths; +import java.time.Duration; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; @@ -812,7 +813,9 @@ private void setupExport(DefaultCamelContext answer, boolean export) { answer.getTypeConverterRegistry().addTypeConverter(Double.class, String.class, ec); answer.getTypeConverterRegistry().addTypeConverter(Float.class, String.class, ec); answer.getTypeConverterRegistry().addTypeConverter(Byte.class, String.class, ec); + answer.getTypeConverterRegistry().addTypeConverter(Short.class, String.class, ec); answer.getTypeConverterRegistry().addTypeConverter(Boolean.class, String.class, ec); + answer.getTypeConverterRegistry().addTypeConverter(Duration.class, String.class, ec); answer.getTypeConverterRegistry().addFallbackTypeConverter(ec, false); // turn of validator in onException during export