[
https://issues.apache.org/jira/browse/OLINGO-52?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chandan V.A resolved OLINGO-52.
-------------------------------
Resolution: Fixed
Fix Version/s: V2 1.1.0
> expand collection issue - Set support
> -------------------------------------
>
> Key: OLINGO-52
> URL: https://issues.apache.org/jira/browse/OLINGO-52
> Project: Olingo
> Issue Type: Bug
> Components: odata2-jpa
> Affects Versions: V2 1.1.0
> Environment: Hibernate
> Reporter: Carl J. Mosca
> Assignee: Chandan V.A
> Priority: Minor
> Labels: JPA, collections, expand
> Fix For: V2 1.1.0
>
>
> We have a model which employs Sets. The JPAExpandCallback seems to be
> expecting Lists for collections.
> The newly discovered "odata-debug" made finding this issue very easy. :)
> A diff of the code changes for a quick fix are below. Because I ran into
> this previously elsewhere, I wonder if a cleaner way to handle the
> collections has already been added somewhere in the code base.
> @@ -100,8 +104,13 @@
> List<EdmNavigationProperty> currentNavPropertyList = null;
> EdmNavigationProperty currentNavigationProperty =
> context.getNavigationProperty();
> try {
> - @SuppressWarnings({ "unchecked" })
> - List<Object> listOfItems = (List<Object>)
> inlinedEntry.get(context.getNavigationProperty().getName());
> + List<Object> listOfItems = null;
> + if (inlinedEntry.get(context.getNavigationProperty().getName())
> instanceof Set) {
> + listOfItems = new ArrayList<Object>();
> + listOfItems.addAll((Set)
> inlinedEntry.get(context.getNavigationProperty().getName()));
> + } else {
> + listOfItems = (List<Object>)
> inlinedEntry.get(context.getNavigationProperty().getName());
> + }
> if (nextEntitySet == null) {
> nextEntitySet =
> context.getSourceEntitySet().getRelatedEntitySet(currentNavigationProperty);
> }
--
This message was sent by Atlassian JIRA
(v6.1#6144)