spring-batch v6.1.0-M2
spring-batch v6.1.0-M2
:star: New features
- Allow to use Mongo
JobRepositorywith anyPlatformTransactionManager#5508 - Add a builder for
ResourcesItemReaderwith support for specifying resources via a pattern #5487 - Introduce
BatchConstants#5190 - Default reader/writer name to the bean name #5149
- Support specifying resource locations using a pattern in
MultiResourceItemReaderBuilder#5056 - Add support for custom collection prefix in MongoDB Job repository #4980
- Add compile-time safety for mutually exclusive builder methods #4888
- Add schema locations to
DatabaseTypeto prevent typos in the metadata tables string path #4586
:lady_beetle: Bug fixes
- Repository/DAO-level count methods cannot soundly validate job/step existence #5544
@OnSkipInRead/@OnSkipInProcess/@OnSkipInWritemethods are ignored byChunkOrientedStepBuilder#listener(Object)#5531- Rolled-back chunk counted as written and step COMPLETED in
ChunkOrientedStep(fault-tolerant retry ofOptimisticLockException) #5509 TransientTransactionErrorinMongoSequenceIncrementerduring parallel job executions #5507- Fix QName deserialization in
JacksonExecutionContextStringSerializer#5502 ChunkOrientedStepscan mode passes the processed chunk toChunkListener#beforeChunkand silently drops scan items when the listener throws #5493ChunkOrientedStepdoes not re-invoke theItemProcessorduring chunk scanning, unlikeFaultTolerantChunkProcessor#5490JpaCursorItemReader.doClose()missing null check on entityManager #5486- Fix incorrect nullability contract for encoding in
StaxEventItemReader#5483 JsonFunctionalTestsfails on Windows due to CRLF #5481@OnChunkErroris never invoked on a chunk-oriented step #5468- Interface listener callbacks are invoked twice when an item handler also has a listener annotation #5466
spring.batch.job.launch.countis silently missing: theJobOperatorkeepsObservationRegistry.NOOPon most configuration paths #5463- Inconsistent JobParameter type handling between storage and retrieval in Spring Batch 6.x #5455
@BeforeStep/@AfterStepmethods are ignored byChunkOrientedStepBuilder#listener(Object)#5451- Replace jetbrains
@NotNullwith jspecify@NonNull#5443 SimpleJobOperator.restart(JobExecution)masks the real failure reason with a misleading “job execution already running” message #5439- Missing GraalVM runtime hints for MongoDB persistence model classes and resources #5435
- Fix
JsonFileItemWriterto produce valid JSON when append allowed with custom header/footer callback #5432 - Step name is null when the step is not defined as a bean and not assigned a name #5278
- Forced Sort Passing via
sorts()Method When Building withMongoCursorItemReaderBuilderand Query #4860 - Incorrect invocation order of job execution listener in remote partitioning #4133
- Remote-chunking implementation does not support parallel executions of the same job #1372
:rocket: Enhancements
- Remove redundant methods which are identical to default method #5516
- Inconsistent builder method name:
MultiResourceItemReaderBuilder.setStrict()#5512 - Improve
DefaultJobParametersConverterandJsonJobParametersConverter#5457 - Replace
isAssignableFrom()withisInstance()where feasible #5427 - Remove unused
ClassUtilsimport fromJdbcPagingItemReader#5407 - Add
@FunctionalInterfacetoStepInterruptionPolicy#5402 - Fix
SimpleJobOperatorjobRegistry state message #5369 - Replace deprecated
Jackson2JsonMessageConverterwithJacksonJsonMessageConverter#5350 - Replace
System.getProperty("line.separator")withSystem.lineSeparator()#5341 - Remove unnecessary null check against createTime of execution #5304
- Inaccurate exception message when attempting to start a running job #5280
- Improve
JacksonExecutionContextStringSerializer#5233 - Replace custom converters with
DefaultFormattingConversionService#5186 - Move async processing APIs to
spring-batch-core#5185 - Replace
CopyOnWriteArrayListwithArrayListinJdbcPagingItemReaderandJpaPagingItemReaderfor performance and correctness #5112 - Add flushing support in
RepositoryItemWriter#5073
:notebook_with_decorative_cover: Documentation
- Fix Javadoc #5545
- Inaccurate documentation of remote chunking and remote partitioning samples regarding JMS headers #5513
- Fix typos in Javadoc comments #5511
- Clarify retryable reads compatibility with forward-only semantics #5510
- Clarify
SkipListenercontract and reference docs about transaction scope #5494 - Reference documentation’s tracing example registers a handler that creates no spans and fails the job #5475
- Fix typo in Javadoc of
JobOperator.start()#5434 - Wrong example in
Registering ItemStream with a Step#5429 - Fix incorrect Javadoc reference in
JobExecution.isStopped()#5414 - Fix javadoc in
SqlPagingQueryUtils#5403 - Fix typo in
EnableBatchProcessingJavadoc #5375 - Inaccurate JavaDoc of
BatchStatus.isLessThanOrEqualTo#5285 - Enhance documentation about leveraging
IteratorItemReaderto reuse scrolling APIs from Spring Data #4484
:hammer: Tasks
- Consistently use .version suffix for version properties in pom.xml #5506
- Update Apache Artemis groupId to
org.apache.artemis#5482 - Update Groovy version to 5.1.2 #5327
- Deprecate
JobExecutionconvenience getters forJobInstanceid #5533 - Deprecate
setRepositoryinRepositoryItemWriter#5473 - Deprecate
setRepositoryandsetSortsinRepositoryItemReader#5472 - Deprecate Derby support since Apache Derby is retired #5254
- Deprecate
JobInstance::getInstanceIdfor removal to eliminate redundancy #5244 - Deprecate
StepExecutionconvenience getters forJobExecutionid and parameters #5142 - Deprecate
setEntityManagerFactoryin JPA item readers/writer #5101
🆙 Dependency Upgrades
Spring Framework: 7.1.0-M2 Spring Integration: 7.2.0-M2 Spring AMQP: 4.2.0-M2 Spring Kafka: 4.2.0-M2 Spring Data: 2026.1.0-M2 Micrometer: 1.18.0-M2
:heart: Contributors
Thank you to all the contributors who worked on this release:
@acktsap, @apptie, @banseok1216, @benelog, @cladren123, @dhritimanchakra, @DragonFSKY, @enduf7686, @GaBaljaintheroom, @Gorock, @hutiefang76, @HyunWoo9930, @jjh75607, @KMGeon, @klopfdreh, @kojw1017, @kyungrae, @leedaegeon, @leestana01, @maequise, @mjd507, @noojung, @quaff, @scordio, @snowykte0426, @UsmanEjaz10, @won-seoop, @xxxxxxjun, and @yuseogi0218
Source spring-projects/spring-batch ·
v6.1.0-M2· 2026-09-24 · upstream release
Mirrored verbatim for indexing. All rights belong to the upstream project.
Release notes are published by the upstream project and mirrored here for indexing. All rights belong to their authors.