You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Stephan Klevenz (JIRA)" <ji...@apache.org> on 2013/11/06 16:32:18 UTC

[jira] [Updated] (OLINGO-52) expand collection issue - Set support

     [ https://issues.apache.org/jira/browse/OLINGO-52?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stephan Klevenz updated OLINGO-52:
----------------------------------

    Assignee: Chandan V.A

> 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: 1.1.0
>         Environment: Hibernate
>            Reporter: Carl J. Mosca
>            Assignee: Chandan V.A
>            Priority: Minor
>              Labels: JPA, collections, expand
>
> 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)