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:
The above code works correctly when using Guava's Lists.partition() instead.