Using Java based configuration in a project we accidentally created a chunk based step without a writer.
The SimpleChunkProcessor expects both the ItemProcessor and ItemWriter to be set (according to the validation done in the afterPropertiesSet method.
The createTasklet method in both the SimpleStepBuilder as well as the FaultTolerantStepBuilder accept a null ItemWriter as long as there is a processor. I would expect a ItemWriter next to an ItemReader to be mandatory (which is also what is expressed in the Spring Batch Documentation) but the java config isn't enforcing this, leading to unexpected behavior.
In the XML configuration an ItemReader and ItemWriter are required where an ItemProcessor is optional. (See the ChunkElementParser for that).
The change that lead to this was introduced in
BATCH-1520 by @david_syer (so maybe there is a valid reason for this, but still it is weird that XML and Java config lead to different results).