[ https://issues.apache.org/jira/browse/IGNITE-13104?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexey Kuznetsov updated IGNITE-13104: -------------------------------------- Release Note: Fixed incorrect processing of non-comparable keys in spring-data for repository methods: findAllById(ids) and deleteAllById(ids). > Spring data 2.0 IgniteRepositoryImpl#deleteAllById contains wrong code > ---------------------------------------------------------------------- > > Key: IGNITE-13104 > URL: https://issues.apache.org/jira/browse/IGNITE-13104 > Project: Ignite > Issue Type: Improvement > Components: springdata > Affects Versions: 2.8.1 > Reporter: Alexey Kuznetsov > Assignee: Alexey Kuznetsov > Priority: Major > Fix For: 2.9 > > Time Spent: 10m > Remaining Estimate: 0h > > {code} > /** {@inheritDoc} */ > @Override public void deleteAllById(Iterable<ID> ids) { > if (ids instanceof Set) > cache.removeAll((Set<ID>)ids); > if (ids instanceof Collection) > cache.removeAll(new HashSet<>((Collection<ID>)ids)); > TreeSet<ID> keys = new TreeSet<>(); > for (ID id : ids) > keys.add(id); > cache.removeAll(keys); > } > {code} > As you can see cache.removeAll may be executed THREE times in some situations. > Also this method can throw ClassCast exception if ids collection contains > objects that are not implement Comparable interface. -- This message was sent by Atlassian Jira (v8.3.4#803005)