This is an automated email from the ASF dual-hosted git repository. orpiske 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 7c104aaaff9 CAMEL-20051: do cache fallback conversions (#11846) 7c104aaaff9 is described below commit 7c104aaaff93a930cb2b26bb85ae848d9e8d2af3 Author: Otavio Rodolfo Piske <orpi...@users.noreply.github.com> AuthorDate: Thu Oct 26 21:15:11 2023 +0200 CAMEL-20051: do cache fallback conversions (#11846) --- .../org/apache/camel/impl/converter/CoreTypeConverterRegistry.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/converter/CoreTypeConverterRegistry.java b/core/camel-base/src/main/java/org/apache/camel/impl/converter/CoreTypeConverterRegistry.java index 17a4a8425f1..8d0f0ad0a06 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/converter/CoreTypeConverterRegistry.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/converter/CoreTypeConverterRegistry.java @@ -381,7 +381,7 @@ public abstract class CoreTypeConverterRegistry extends ServiceSupport implement } // fallback converters - final Object fallBackRet = tryFallback(type, exchange, value, tryConvert); + final Object fallBackRet = tryFallback(type, exchange, value, tryConvert, typeConvertible); if (fallBackRet != null) { return fallBackRet; } @@ -426,7 +426,9 @@ public abstract class CoreTypeConverterRegistry extends ServiceSupport implement return null; } - private Object tryFallback(final Class<?> type, final Exchange exchange, final Object value, boolean tryConvert) { + private Object tryFallback( + final Class<?> type, final Exchange exchange, final Object value, boolean tryConvert, + TypeConvertible<?, ?> typeConvertible) { for (FallbackTypeConverter fallback : fallbackConverters) { TypeConverter tc = fallback.getFallbackTypeConverter(); @@ -441,6 +443,7 @@ public abstract class CoreTypeConverterRegistry extends ServiceSupport implement } if (rc != null) { + converters.put(typeConvertible, tc); // if fallback can promote then let it be promoted to a first class type converter if (fallback.isCanPromote()) { // add it as a known type converter since we found a fallback that could do it