You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2015/10/22 15:07:19 UTC

olingo-odata4 git commit: [OLINGO-798] Fix potential nullpointer in client getContainerCase

Repository: olingo-odata4
Updated Branches:
  refs/heads/master 9f663baf5 -> 46cad03fe


[OLINGO-798] Fix potential nullpointer in client getContainerCase


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

Branch: refs/heads/master
Commit: 46cad03fed25184cb72fcb72b92446e6f0cd219a
Parents: 9f663ba
Author: Christian Amend <ch...@sap.com>
Authored: Thu Oct 22 15:06:09 2015 +0200
Committer: Christian Amend <ch...@sap.com>
Committed: Thu Oct 22 15:06:09 2015 +0200

----------------------------------------------------------------------
 .../client/core/edm/ClientCsdlEdmProvider.java       | 15 +++++++++++----
 .../org/apache/olingo/client/core/MetadataTest.java  | 10 ++++++++++
 2 files changed, 21 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/46cad03f/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
index eaf3597..7ebb8c8 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/ClientCsdlEdmProvider.java
@@ -155,11 +155,18 @@ public class ClientCsdlEdmProvider extends CsdlAbstractEdmProvider {
 
   @Override
   public CsdlEntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName)
-          throws ODataException {
+      throws ODataException {
     for (CsdlSchema schema : xmlSchemas.values()) {
-      if (schema.getEntityContainer() != null) {
-        return new CsdlEntityContainerInfo().setContainerName(entityContainerName).setExtendsContainer(
-            schema.getEntityContainer().getExtendsContainerFQN());
+      CsdlEntityContainer entityContainer = schema.getEntityContainer();
+      if (entityContainer != null) {
+        FullQualifiedName containerFQN;
+        if (entityContainerName == null) {
+          containerFQN = new FullQualifiedName(schema.getNamespace(), entityContainer.getName());
+        } else {
+          containerFQN = entityContainerName;
+        }
+        return new CsdlEntityContainerInfo().setContainerName(containerFQN).setExtendsContainer(
+            entityContainer.getExtendsContainerFQN());
       }
     }
     return null;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/46cad03f/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
index 220f293..a24ca36 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/MetadataTest.java
@@ -196,6 +196,16 @@ public class MetadataTest extends AbstractTest {
     assertEquals("NorthwindEntities", entityContainer.getName());
   }
 
+  @Test
+  public void getContainerWithoutCallingGetSchemas() {
+    final XMLMetadata metadata = getClient().getDeserializer(ContentType.APPLICATION_XML).
+        toMetadata(getClass().getResourceAsStream("fromdoc1-metadata.xml"));
+
+    Edm edm = getClient().getReader().readMetadata(metadata.getSchemaByNsOrAlias());
+
+    assertNotNull(edm.getEntityContainer());
+  }
+
   /**
    * Tests Example 85 from CSDL specification.
    */