Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
V2 1.1.0
-
Hibernate
Description
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); }