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 2024/02/09 05:30:41 UTC
(camel) branch main updated: CAMEL-20399: String to short type conversion fails (#13060)
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 <an...@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)) {