This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch lang4
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 74d59b7afd7c75eb5078df2f46d58af318c7c12b
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Feb 3 12:42:44 2024 +0100

    CAMEL-20378: Languages should be thread-safe and be configured only via 
properties array, all in the same way.
---
 .../org/apache/camel/catalog/impl/AbstractCamelCatalog.java |  3 +--
 .../main/java/org/apache/camel/support/LanguageSupport.java | 13 ++++++++++---
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git 
a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
 
b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
index acd2447db37..0a6126ac729 100644
--- 
a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
+++ 
b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
@@ -1457,9 +1457,8 @@ public abstract class AbstractCamelCatalog {
                     }
                     return answer;
                 } catch (NoSuchMethodException e) {
-                    // ignore
+                     // ignore
                 }
-                // optional validate
                 if (predicate) {
                     instance.getClass().getMethod("createPredicate", 
String.class).invoke(instance, text);
                 } else {
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/LanguageSupport.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/LanguageSupport.java
index 5fc48b1fbb9..63a492326cb 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/LanguageSupport.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/LanguageSupport.java
@@ -124,7 +124,7 @@ public abstract class LanguageSupport implements Language, 
IsSingleton, CamelCon
             value = defaultValue;
         }
 
-        if (value instanceof String) {
+        if (camelContext != null && value instanceof String) {
             value = 
getCamelContext().resolvePropertyPlaceholders(value.toString());
         }
 
@@ -133,7 +133,7 @@ public abstract class LanguageSupport implements Language, 
IsSingleton, CamelCon
         if (value instanceof String && String.class != type) {
             String text = value.toString();
 
-            if (EndpointHelper.isReferenceParameter(text)) {
+            if (camelContext != null && 
EndpointHelper.isReferenceParameter(text)) {
                 Object obj;
                 // special for a list where we refer to beans which can be 
either a list or a single element
                 // so use Object.class as type
@@ -177,7 +177,14 @@ public abstract class LanguageSupport implements Language, 
IsSingleton, CamelCon
                                                    + " as the value is not 
true or false");
             }
         }
-        return value == null ? null : 
getCamelContext().getTypeConverter().convertTo(type, value);
+        if (value == null) {
+            return null;
+        }
+        if (camelContext != null) {
+            return camelContext.getTypeConverter().convertTo(type, value);
+        } else {
+            return (T) value;
+        }
     }
 
 }

Reply via email to