OOM during StringBuilder in AssertionErrorMessagesAggregrator#aggregrateErrorMessages
- Dominant language
- Java
- Stars
- 2.8k
- Forks
- 788
- Avg merge
- 14h 57m
- Merged PRs (30d)
- 36
Description
#### Summary
Building the string for an assertAll can lead to an OOM, it would be better to return a truncated message if the error count is larger than some configurable number - or at least add a defensive check and/or catch OOM to produce a more useful outcome than
```
Java heap space
java.lang.OutOfMemoryError:
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
at java.lang.StringBuilder.append(StringBuilder.java:136)
at org.assertj.core.error.AssertionErrorMessagesAggregrator.aggregrateErrorMessages(AssertionErrorMessagesAggregrator.java:25)
at org.assertj.core.api.SoftAssertionError.(SoftAssertionError.java:36)
at org.assertj.core.error.AssertionErrorCreator.multipleSoftAssertionsError(AssertionErrorCreator.java:75)
at org.assertj.core.api.SoftAssertions.assertAll(SoftAssertions.java:166)
at com.redacted.testThing(Redacted.java:129)
```
This should be easy to repro.
Thanks for considering - I can submit a PR if that would help here.
Contributor guide
Assessment
This issue has not been assessed yet.