In Spring Integration Version 4.3.4 and higher, the splitter have another behaviour.
When you split a message with a large header, the aggregation time increases exponentialy.
In our case we read all articles out of a sql database in a header and split it than with the int:splitter to separate messages to work with and aggregate them later again. All that happens in one xml configuration file.
I figured out, that when you split the message with the large header as expression, you need to remove the original header by a header-enricher before you aggregate. Otherwise the costs of aggregation increases extremely now.
I also wrote a testapp for that and pushed it to github.
Branches in my github repo:
master -> Bom: Athens-SR1
2.0.8.RELEASE -> Bom: 2.0.8.RELEASE (works fine without header-enricher)
Athens-BUILD-SNAPSHOT -> Bom: Athens-BUILD-SNAPSHOT