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 13:02:08 UTC

[camel] branch camel-2.x 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 camel-2.x
in repository https://gitbox.apache.org/repos/asf/camel.git


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

commit cd03c2aaea5c7ce6aa7c94284b72905ad1b99ea1
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
    
    (cherry picked from commit 3b7d95c16a0bfce7aeb0d7a524fac3c6b792ad15)
---
 .../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 ce9882c..e5fca30 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
@@ -34,9 +34,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++) {
@@ -89,7 +91,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