Repository: olingo-odata4 Updated Branches: refs/heads/master 8ad297f9a -> cf360e657
[OLINGO-315] handle the case of zero container in EDM schema Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/80c2f83a Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/80c2f83a Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/80c2f83a Branch: refs/heads/master Commit: 80c2f83acc83a7b83231f2ac26964d499a23b3a7 Parents: 8ad297f Author: challenh <[email protected]> Authored: Fri Jun 6 17:03:58 2014 +0800 Committer: challenh <[email protected]> Committed: Fri Jun 6 17:03:58 2014 +0800 ---------------------------------------------------------------------- .../client/core/op/AbstractODataBinder.java | 33 ++++++++++---------- 1 file changed, 17 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/80c2f83a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataBinder.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataBinder.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataBinder.java index 14c49a8..c52b0c1 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataBinder.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/AbstractODataBinder.java @@ -347,22 +347,23 @@ public abstract class AbstractODataBinder implements CommonODataBinder { if (contextURL.getDerivedEntity() == null) { for (EdmSchema schema : edm.getSchemas()) { final EdmEntityContainer container = schema.getEntityContainer(); - - EdmBindingTarget bindingTarget = container.getEntitySet(contextURL.getEntitySetOrSingletonOrType()); - if (bindingTarget == null) { - bindingTarget = container.getSingleton(contextURL.getEntitySetOrSingletonOrType()); - } - if (bindingTarget != null) { - if (contextURL.getNavOrPropertyPath() == null) { - type = bindingTarget.getEntityType(); - } else { - final EdmNavigationProperty navProp = bindingTarget.getEntityType(). - getNavigationProperty(contextURL.getNavOrPropertyPath()); - - type = navProp == null - ? bindingTarget.getEntityType() - : navProp.getType(); - } + if(container != null) { + EdmBindingTarget bindingTarget = container.getEntitySet(contextURL.getEntitySetOrSingletonOrType()); + if (bindingTarget == null) { + bindingTarget = container.getSingleton(contextURL.getEntitySetOrSingletonOrType()); + } + if (bindingTarget != null) { + if (contextURL.getNavOrPropertyPath() == null) { + type = bindingTarget.getEntityType(); + } else { + final EdmNavigationProperty navProp = bindingTarget.getEntityType(). + getNavigationProperty(contextURL.getNavOrPropertyPath()); + + type = navProp == null + ? bindingTarget.getEntityType() + : navProp.getType(); + } + } } } if (type == null) {
