Mitko Kolev created OLINGO-857:
----------------------------------
Summary: Annotation processor generates unparsable edm
Key: OLINGO-857
URL: https://issues.apache.org/jira/browse/OLINGO-857
Project: Olingo
Issue Type: Bug
Components: odata2-annotation
Affects Versions: V2 2.0.5
Environment: Java version 2
Reporter: Mitko Kolev
Using different namespaces for olingo annotated POJOs may produce unparsable
queries. Here is how to reproduce:
* create model that uses 2 namespaces with navigation between entities, for
example the entities {{A}} and {{B}} have namespace {{AB}}, the entities {{C}},
{{D}} have namespace {{CD}}.
{code}
@EdmEntityType(name = "A", namespace = "AB")
@EdmEntitySet(name = "AA")
class A {
@EdmKey
@EdmProperty
String id;
@EdmNavigationProperty(toMultiplicity = Multiplicity.ZERO_OR_ONE,
toType = B.class)
B b;
}
@EdmEntityType(name = "B", namespace = "AB")
@EdmEntitySet
class B {
@EdmNavigationProperty(toMultiplicity = Multiplicity.MANY, toType =
A.class)
List<A> a;
}
@EdmEntityType(name = "C", namespace = "CD")
@EdmEntitySet(name = "CC")
class C {
@EdmKey
@EdmProperty
String id;
@EdmNavigationProperty(toMultiplicity = Multiplicity.ZERO_OR_ONE,
toType = D.class)
D d;
}
@EdmEntityType(name = "D", namespace = "CD")
@EdmEntitySet
class D {
@EdmNavigationProperty(toMultiplicity = Multiplicity.MANY, toType =
C.class)
List<C> c;
}
{code}
* Now build the model with
{code}
new AnnotationEdmProvider(Arrays.<Class<?>> asList(A.class, B.class, C.class,
D.class));
{code}
* The query http://localhost/CC('1')/D results in
Attempt to parse these queries results in
{code}
org.apache.olingo.odata2.api.edm.EdmException: An exception occurred.
at
org.apache.olingo.odata2.core.edm.provider.EdmEntityContainerImplProv.getAssociationSet(EdmEntityContainerImplProv.java:169)
at
...
{code}
I guess the reason is that the default namespace container is generated in the
wrong schema (the schema for the last entities in the list)
This issue is blocking our development.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)