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 2020/10/02 08:50:51 UTC

[camel] 11/14: CAMEL-15605: Languages should be singleton for better performance.

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

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

commit 7bfaccb2415df09ebfeda810359c6ac52e04d2da
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Oct 1 22:35:23 2020 +0200

    CAMEL-15605: Languages should be singleton for better performance.
---
 .../apache/camel/reifier/language/XPathExpressionReifier.java | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/language/XPathExpressionReifier.java b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/language/XPathExpressionReifier.java
index 2e425f6..4fb3b6f 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/language/XPathExpressionReifier.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/language/XPathExpressionReifier.java
@@ -69,8 +69,15 @@ public class XPathExpressionReifier extends ExpressionReifier<XPathExpression> {
         Map<String, Object> properties = new HashMap<>(9);
         properties.put("expression", expression);
         properties.put("documentType", definition.getDocumentType());
-        properties.put("resultQName", asQName(definition.getResultTypeName()));
-        properties.put("resultType", definition.getResultType());
+        // resultType can either point to a QName or it can be a regular class that influence the qname
+        // so we need this special logic to set resultQName and resultType accordingly
+        Object qname = asQName(definition.getResultTypeName());
+        properties.put("resultQName", qname);
+        if (definition.getResultType() == null && qname == null && definition.getResultTypeName() != null) {
+            properties.put("resultType", definition.getResultTypeName());
+        } else {
+            properties.put("resultType", definition.getResultType());
+        }
         properties.put("useSaxon", definition.getSaxon());
         properties.put("xpathFactory", definition.getXPathFactory());
         properties.put("objectModelUri", definition.getObjectModel());