As the title says, ItemStream.close is by default always called twice in Readers, Processors and Writers that implement this interface.
After some digging I have learned that this is due to SPR-8751:
https://jira.springsource.org/browse/SPR-8751
and that I can disable this feature by replacing
@Bean
with
@Bean(destroyMethod="")
in all bean definitions for readers, processors and writers.

However, this is tedious, and creates unwanted noise in the configuration classes.
Using XML configuration instead of @Configuration classes is not a good solution either.

Anyone know of a better, more general solution for this?