Repository: olingo-odata2
Updated Branches:
  refs/heads/master ecd02e87b -> ee4b64337


[OLINGO-] ODatav2 edmx Reference tag Issue

Signed-off-by: Christian Amend <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/ee4b6433
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/ee4b6433
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/ee4b6433

Branch: refs/heads/master
Commit: ee4b64337a35898a84508180d4f4e73d407c42e0
Parents: ecd02e8
Author: Archana Rai <[email protected]>
Authored: Wed Feb 8 11:51:53 2017 +0530
Committer: Christian Amend <[email protected]>
Committed: Tue Feb 21 12:36:45 2017 +0100

----------------------------------------------------------------------
 .../core/ep/consumer/XmlMetadataConsumer.java   |  5 +++-
 .../ep/consumer/XmlMetadataConsumerTest.java    | 29 ++++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/ee4b6433/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
----------------------------------------------------------------------
diff --git 
a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
 
b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
index e245cad..df4cdcd 100644
--- 
a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
+++ 
b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
@@ -954,7 +954,10 @@ public class XmlMetadataConsumer {
       if (namespacePrefix == null || isDefaultNamespace(namespacePrefix)) {
         namespacePrefix = Edm.PREFIX_EDM;
       }
-      xmlNamespaceMap.put(namespacePrefix, namespaceUri);
+      //Ignoring the duplicate tags, parent tag namespace takes precedence
+      if (!xmlNamespaceMap.containsKey(namespacePrefix)) {
+        xmlNamespaceMap.put(namespacePrefix, namespaceUri);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/ee4b6433/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java
----------------------------------------------------------------------
diff --git 
a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java
 
b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java
index fb95029..9c4877c 100644
--- 
a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java
+++ 
b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumerTest.java
@@ -180,6 +180,35 @@ public class XmlMetadataConsumerTest extends 
AbstractXmlConsumerTest {
       "Nullable=\"false\" MaxLength=\"Max\"/><Property Name=\"Name\" 
Type=\"Edm.Int32\" MaxLength=\"max\"/>"
       + "</EntityType></Schema></edmx:DataServices></edmx:Edmx>";
 
+  private final String edmxRefFor1680364709 = 
+      "<edmx:Edmx xmlns:edmx=\"http://schemas.microsoft.com/ado/2007/06/edmx\"; 
" +
+      
"xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\"; 
xmlns:sap=\"" +
+      "http://www.sap.com/Protocols/SAPData\"; Version=\"1.0\">" +
+      "<edmx:Reference xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\"; 
" +
+      
"Uri=\"https://host:port/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies"+
+      "(TechnicalName='%2FIWBEP%2FVOC_COMMON'"+
+      ",Version='0001',SAP__Origin='')/$value\">" +
+      "<edmx:Include Alias=\"Common\" 
Namespace=\"com.sap.vocabularies.Common.v1\"/>" +
+      "</edmx:Reference>" + 
+      "</edmx:Edmx>";
+  
+  @Test
+  public void twoEdmxWithValidation() throws Exception {
+    XmlMetadataConsumer parser = new XmlMetadataConsumer();
+    XMLStreamReader reader = createStreamReader(edmxRefFor1680364709);
+    DataServices result = parser.readMetadata(reader, true);   
+    assertNotNull(result);
+
+  }
+  
+  @Test
+  public void twoEdmxWithoutValidation() throws Exception {
+    XmlMetadataConsumer parser = new XmlMetadataConsumer();
+    XMLStreamReader reader = createStreamReader(edmxRefFor1680364709);
+    DataServices result = parser.readMetadata(reader, false);   
+    assertNotNull(result);
+
+  }
   @Test
   public void testMetadataDokumentWithWhitepaces() throws Exception {
     final String metadata = ""

Reply via email to