[ https://issues.apache.org/jira/browse/OLINGO-1529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17353407#comment-17353407 ]
Ronald commented on OLINGO-1529: -------------------------------- The Bug is located in the source code of class org.apache.olingo.client.core.communication.request.retrieve.XMLMetadataRequestImpl in line 86. While processing the reference includes, all schemas are added to the metadata schema list and for each schema the corresponding alias is set. This is fine so far, but the list of schemas in the metadata object contains only schema object references and not clones of the schemas. So when setting an alias for the schema of an include, all other schemas for the other includes with the same namespace will get "overwritten", as they share the same schema instance. This could be fixed by cloning the CsdlSchema in code line 86. {code:java} // edmx:Include for (Include include : reference.getIncludes()) { final CsdlSchema includedSchema = includeMetadata.getSchema(include.getNamespace()); //this schema instance should be cloned if (includedSchema != null) { response.getBody().getSchemas().add(includedSchema); if (StringUtils.isNotBlank(include.getAlias())) { includedSchema.setAlias(include.getAlias()); } } } {code} > EdmProviderImpl aliasToNamespaceInfo incomplete > ----------------------------------------------- > > Key: OLINGO-1529 > URL: https://issues.apache.org/jira/browse/OLINGO-1529 > Project: Olingo > Issue Type: Bug > Components: odata4-client > Affects Versions: (Java) V4 4.8.0 > Reporter: Ronald > Priority: Major > Fix For: (Java) V4 4.9.0 > > Attachments: aliasToNamespaceInfo.png, metadata.xml > > > According to odata-csdl-xml v4.01 specification chapter 4.1 a edmx:Reference > can include multiple edmx:Include. > Metadata document: > {quote}<edmx:Reference > Uri="/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_CAPABILITIES',Version='0001',SAP__Origin='LOCAL')/$value"> > <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/> > <edmx:Include Namespace="Org.OData.Capabilities.V1" > Alias="SAP__capabilities"/> > </edmx:Reference>{quote} > > In this scenario aliasToNamespaceInfo attribute of the EdmProviderImpl object > only contains the alias "SAP__capabilities", but not "Capabilities". > In consequence it is not possible to e.g. read annotation groups using alias > "Capabilities". -- This message was sent by Atlassian Jira (v8.3.4#803005)