Object Escape by List::sublist— Analysis of ConcurrentModificationException Caused by Guava Lists::partition object publication
Sep 3, 2018 · 3 min read
I recently worked a ConcurrentModificationException thrown from a private member of a Callable class. At first sight, there doesn’t seem to be shared objects among threads. The logic is, a list is portioned into smaller lists, then each sublist is passed into a Callable for concurrent operation. It seemed safe to me because each thread is modifying its own sublist thus there should not be ConcurrentModificationException. This is the pseudocode:

