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.
*/