[
https://issues.apache.org/jira/browse/OLINGO-1403?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
mibo updated OLINGO-1403:
-------------------------
Fix Version/s: (was: (Java) V4 4.8.0)
(Java) V4 4.9.0
> Olingo V4 client does not parse expression annotations correctly
> ----------------------------------------------------------------
>
> Key: OLINGO-1403
> URL: https://issues.apache.org/jira/browse/OLINGO-1403
> Project: Olingo
> Issue Type: Bug
> Components: odata4-client
> Reporter: Vladislav Glinskiy
> Priority: Major
> Fix For: (Java) V4 4.9.0
>
>
> Olingo V4 client does not parse expression annotations correctly.
> Annotations on logical & comparison expressions and UrlRf expressions are not
> parsed at all. The corresponding deserializers do not honor "Annotation"
> elements.
> Annotations on the following expressions get wrapped into another
> CsdlAnnotation instance due to missing 'jp.nextToken()' calls in the
> corresponding deserializers:
> - ClientCsdlNull
> - ClientCsdlApply
> - ClientCsdlCast
> - ClientCsdlIsOf
> - ClientCsdlLabeledElement
> Only annotations on
> [Record|https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/csprd05/odata-csdl-xml-v4.01-csprd05.html#sec_Record]
> expressions are parsed as expected. This is explained by 'jp.nextToken()'
> [call in
> ClientCsdlRecord|https://github.com/vladglinskiy/olingo-odata4/blob/master/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ClientCsdlRecord.java#L49],
> which is missing in other deserializers:
> {code:java}
> ...
> else if ("Annotation".equals(jp.getCurrentName())) {
> jp.nextToken();
> record.getAnnotations().add(jp.readValueAs(ClientCsdlAnnotation.class));
> }
> ...
> {code}
> [I created a unit test to reproduce the
> issue.|https://github.com/vladglinskiy/olingo-odata4/commit/2e2b355e9e07e4bb9dfb490cc0b50c66e090f483]
> Steps to reproduce:
> 1. git clone https://github.com/vladglinskiy/olingo-odata4.git
> 2. git checkout csdl-deserializer-bugs
> 3. mvn clean test -pl lib/client-core/ -Dtest=AnnotatedExpressionTest
> All tests except {{annotatedRecordExpressionTest}} will fail.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)