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 b3f89ab05f2 CAMEL-20399: String to short type conversion fails (#13060)
b3f89ab05f2 is described below

commit b3f89ab05f2d93ce471349fa3f565d46f33b5c35
Author: Andrea Tarocchi <andrea.taroc...@gmail.com>
AuthorDate: Fri Feb 9 06:30:36 2024 +0100

    CAMEL-20399: String to short type conversion fails (#13060)
---
 .../apache/camel/converter/CamelBaseBulkConverterLoader.java |  4 ++--
 .../org/apache/camel/impl/converter/TypeConvertersTest.java  | 12 ++++++++++++
 .../maven/packaging/TypeConverterLoaderGeneratorMojo.java    |  2 ++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git 
a/core/camel-base/src/generated/java/org/apache/camel/converter/CamelBaseBulkConverterLoader.java
 
b/core/camel-base/src/generated/java/org/apache/camel/converter/CamelBaseBulkConverterLoader.java
index ed59bef03e0..d28d0c8abf9 100644
--- 
a/core/camel-base/src/generated/java/org/apache/camel/converter/CamelBaseBulkConverterLoader.java
+++ 
b/core/camel-base/src/generated/java/org/apache/camel/converter/CamelBaseBulkConverterLoader.java
@@ -297,7 +297,7 @@ public final class CamelBaseBulkConverterLoader implements 
TypeConverterLoader,
             if (value instanceof byte[]) {
                 return 
org.apache.camel.converter.ObjectConverter.toNumber((byte[]) value, exchange);
             }
-        } else if (to == java.lang.Short.class) {
+        } else if (to == java.lang.Short.class || to == short.class) {
             if (value instanceof java.lang.Number) {
                 Object obj = 
org.apache.camel.converter.ObjectConverter.toShort((java.lang.Number) value);
                 if (obj == null) {
@@ -845,7 +845,7 @@ public final class CamelBaseBulkConverterLoader implements 
TypeConverterLoader,
             if (from == byte[].class) {
                 return this;
             }
-        } else if (to == java.lang.Short.class) {
+        } else if (to == java.lang.Short.class || to == short.class) {
             if (from == java.lang.Number.class) {
                 return this;
             }
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/impl/converter/TypeConvertersTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/impl/converter/TypeConvertersTest.java
index 6910540cd2c..ae02af2d52f 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/impl/converter/TypeConvertersTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/impl/converter/TypeConvertersTest.java
@@ -45,4 +45,16 @@ public class TypeConvertersTest extends ContextTestSupport {
         assertEquals("en", iso);
     }
 
+    @Test
+    public void testStringToPrimitiveTypes() throws Exception {
+        assertEquals(Short.parseShort("1"), 
context.getTypeConverter().mandatoryConvertTo(short.class, "1"));
+        assertEquals(Integer.parseInt("1"), 
context.getTypeConverter().mandatoryConvertTo(int.class, "1"));
+        assertEquals(Long.parseLong("1"), 
context.getTypeConverter().mandatoryConvertTo(long.class, "1"));
+
+        assertEquals(Float.parseFloat("1.1"), 
context.getTypeConverter().mandatoryConvertTo(float.class, "1.1"));
+        assertEquals(Double.parseDouble("1.1"), 
context.getTypeConverter().mandatoryConvertTo(double.class, "1.1"));
+
+        assertEquals("a".charAt(0), 
context.getTypeConverter().mandatoryConvertTo(char.class, "a"));
+        assertEquals(Boolean.parseBoolean("true"), 
context.getTypeConverter().mandatoryConvertTo(boolean.class, "true"));
+    }
 }
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/TypeConverterLoaderGeneratorMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/TypeConverterLoaderGeneratorMojo.java
index aa0a306e49c..60b9dafb1b6 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/TypeConverterLoaderGeneratorMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/TypeConverterLoaderGeneratorMojo.java
@@ -471,6 +471,8 @@ public class TypeConverterLoaderGeneratorMojo extends 
AbstractGeneratorMojo {
                 return "int";
             } else if ("java.lang.Long".equals(to)) {
                 return "long";
+            } else if ("java.lang.Short".equals(to)) {
+                return "short";
             } else if ("java.lang.Character".equals(to)) {
                 return "char";
             } else if ("java.lang.Boolean".equals(to)) {

Reply via email to