[ https://issues.apache.org/jira/browse/OLINGO-1403?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
mibo updated OLINGO-1403: ------------------------- Fix Version/s: Version (Java) V4 5.0.0 (was: (Java) V4 4.10.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: Version (Java) V4 5.0.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.20.10#820010)