[ https://issues.apache.org/jira/browse/COLLECTIONS-673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16351143#comment-16351143 ]
Gary Gregory commented on COLLECTIONS-673: ------------------------------------------ Thank for your report [~jmark]. We welcome patches, with unit tests of course! :) > ListUtils.partition potential integer overflow > ---------------------------------------------- > > Key: COLLECTIONS-673 > URL: https://issues.apache.org/jira/browse/COLLECTIONS-673 > Project: Commons Collections > Issue Type: Bug > Components: List > Affects Versions: 4.1 > Reporter: John Mark > Priority: Major > > When calling {{ListUtils.partition()}} with a large size and large list, it > is possible that an integer overflow will occur in the {{size()}} method that > causes incorrect behavior. This will occur when using a size that, when added > to list.size() will be larger than {{Integer.MAX_VALUE}} > Current version of Guava's {{Lists.partition()}} handle this correctly, so > perhaps the code for {{ListUtils.partition()}} needs to be updated based on > the latest Guava code. > A simple illustration of this: > {code} > List<String> aList = Arrays.asList("1", "2", "3", "4", "5"); > List<List<String>> partitioned = ListUtils.partition(aList, > Integer.MAX_VALUE); > System.out.println("Number of partitions: " + partitioned.size()); > for(List<String> l : partitioned) { > System.out.println(l); > } > {code} > The above code works correctly when using Guava's {{Lists.partition()}} > instead. -- This message was sent by Atlassian JIRA (v7.6.3#76005)