Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.4
-
None
Description
DGM.collectEntries(Iterator, ...) naively calls toList(Iterator<T> self) to convert the Iterator to a list. There's no need to do this since iterator suffices to collect the entries. Even worse, toList uses ArrayList what may lead to multiple reallocations when the ArrayList's capacity must be enlarged.
Error:
Caught: java.lang.OutOfMemoryError: GC overhead limit exceeded
The same problems may occur when calling other methods that internally convert Iterator to lists.
Attachments
Issue Links
- relates to
-
GROOVY-5936 java.lang.OutOfMemoryError through Iterator.collectEntries and others (part 2: handle others)
- Closed