⭐ New features
- Provide a
@JobParameterannotation for more convenient access to variables inJobParameters. #5563 - Add
PageableItemReader#5477 - Make
JsonLineMapperagnostic to the JSON library #5345 - Introduce
JsonLineAggregatorforFlatFileItemWriterto write JSON Lines format file #5344 - Supports to create step execution with context #5184
🚀 Enhancements
- Introduce
RemoteChunkingManagerBuilderand deprecateRemoteChunkingManagerStepBuilderand its factory #5598 JdbcJobExecutionDao.findJobExecutionsissues 1 + 3N queries for N executions #5570- Polish
DatabaseType#5542 - Improve
JdbcJobExecutionDao#synchronizeStatus(StepExecution)#5365 - Refactor JDBC DAOs to use named parameters instead of positional parameters and
JdbcClientinstead ofJdbcTemplate#4804 - Eliminate unnecessary query for current version #4797
- Poll workers of a partitioned step with a database query #4705
- Running a job causes retrieval of full history of job executions #4169
- Not unique steps names in a
FlowJobshould log a warning #3757
🐞 Bug fixes
- Restart after a chunk scan that ended with a skipped item processes that item again #5599
ChunkOrientedStepdoes not restore the step execution when a chunk transaction is not committed #5594MongoCursorItemReaderthrowsNullPointerExceptionwhen closed before opening #5589- MariaDB 6.0 migration fails when renaming
BATCH_JOB_SEQ#5586 - listener exceptions are skippable in scan mode but fatal elsewhere #5585
- Fix missing page increase in
AbstractPaginatedDataItemReader#5583 - Job-scoped beans are not usable from worker threads of multi-threaded steps and parallel flows #5576
BatchObservabilityBeanPostProcessordoesn't respect manually configuredobservationRegistry#5566- Failed job launch leaves an orphan
JobInstancebehind #5562 - Restart after a failure during chunk scanning skips the remaining items of the chunk in
ChunkOrientedStep#5558 NullPointerExceptionwhen closing an unopenedJpaPagingItemReader#5539- Misleading logs in scan mode without retries #5527
FlatFileItemReaderBuilder.addComment()throwsUnsupportedOperationExceptionaftercomments(...)#5520DelimitedLineTokenizerthrowsStringIndexOutOfBoundsExceptionwhen a field is a single quote character #5519FixedLengthTokenizerin strict mode rejects lines when the open-ended range starts at or before the first range's min #5518JobFlowExecutorleaks aStepExecutionacross job executions on a shared thread when no transition matches a step'sExitStatus#5514- Aggregator of remote partitions is not passed all worker steps upon controller restart #5158
📔 Documentation
JpaItemWriterdescription in Appendix of documentation is wrong #5556
🆙 Dependency Upgrades
Spring Framework: 7.1.0-RC1
Spring Integration: 7.2.0-RC1
Spring AMQP: 4.2.0-RC1
Spring Kafka: 4.2.0-RC1
Spring Data: 2026.1.0-RC1
Spring LDAP: 4.2.0-RC1
Micrometer: 1.18.0-RC1
❤️ Contributors
Thank you to all the contributors who worked on this release:
@ahrytsiuk, @Akhil-1527, @AndreaBosmanWork, @beyondwin, @COBI-98, @hunseonglee, @Ichanskiy, @jjh75607, @jjj-n, @PauliusPeciura, @pius712, @quaff, @ryujungkyun, and @scordio