You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ff...@apache.org on 2019/03/28 12:29:57 UTC

[camel] branch master updated: [CAMEL-13357]Regression - Namespaces defined on the SOAP envelope get lost in PAYLOAD mode

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 3b7d95c  [CAMEL-13357]Regression - Namespaces defined on the SOAP envelope get lost in PAYLOAD mode
3b7d95c is described below

commit 3b7d95c16a0bfce7aeb0d7a524fac3c6b792ad15
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Thu Mar 28 20:29:37 2019 +0800

    [CAMEL-13357]Regression - Namespaces defined on the SOAP envelope get lost in PAYLOAD mode
---
 .../camel/component/cxf/converter/DelegatingXMLStreamReader.java  | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/DelegatingXMLStreamReader.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/DelegatingXMLStreamReader.java
index 9f4d26f..b5b5235 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/DelegatingXMLStreamReader.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/DelegatingXMLStreamReader.java
@@ -30,9 +30,11 @@ class DelegatingXMLStreamReader implements XMLStreamReader {
     private XMLStreamReader reader;
     private final String[] xprefixes;
     private int depth;
+    private Map<String, String> nsmap;
 
     DelegatingXMLStreamReader(XMLStreamReader reader, Map<String, String> nsmap) {
         this.reader = reader;
+        this.nsmap = nsmap;
         //the original nsmap will be mutated if some of its declarations are redundantly present at the current reader 
         Set<String> prefixes = nsmap.keySet();
         for (int i = 0; i < reader.getNamespaceCount(); i++) {
@@ -85,7 +87,11 @@ class DelegatingXMLStreamReader implements XMLStreamReader {
 
     @Override
     public String getNamespaceURI(String prefix) {
-        return reader.getNamespaceURI(prefix);
+        String ret = reader.getNamespaceURI(prefix);
+        if (ret == null) {
+            ret = nsmap.get(prefix);
+        }
+        return ret;
     }
 
     @Override