Skip to content

Update dependency org.springframework.batch:spring-batch-core to v6#48

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/major-spring-batch
Open

Update dependency org.springframework.batch:spring-batch-core to v6#48
renovate[bot] wants to merge 1 commit intomainfrom
renovate/major-spring-batch

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Nov 19, 2025

This PR contains the following updates:

Package Change Age Confidence
org.springframework.batch:spring-batch-core (source) 5.2.46.0.3 age confidence

Release Notes

spring-projects/spring-batch (org.springframework.batch:spring-batch-core)

v6.0.3

Compare Source

⭐ New features
  • Add configuration property to set the job instance incrementer name #​5245
  • Add support to configure job instance incrementer name through environment variable / system property #​5332
🚀 Enhancements
  • Inconsistent logging for step execution #​5279
  • Redundant null id null checks #​5250
🐞 Bug fixes
  • skip listeners registered through ChunkOrientedStepBuilder#listener are ignored #​5347
  • Incorrect counters with local chunking #​5337
  • Exceptions are not reported with local chunking #​5336
  • CommandLineJobOperator.parse() truncates parameter values containing '=' #​5295
  • Incorrect rollbackCount in scan mode in ChunkOrientedStep #​5247
  • JobOperator creates its own MapJobRegistry ignoring explicitly defined JobRegistry Spring bean in application #​5229
  • Transaction is not rolled back before chunk scanning in ChunkOrientedStep with skip policy #​5210
  • Polymorphic StepExecutionListeners registered through ChunkOrientedStepBuilder#listener are ignored #​5094
  • V6 migration script for SQL Server fails #​5276
  • Reinstate inadvertently removed protected method in StaxEventItemWriter #​5260
📔 Documentation
  • Clarify ItemWriter contract regarding empty chunks #​5319
  • Fix incorrect javadoc references in JobContext #​5342
  • Improve and fix the Javadoc link #​5290
  • Missing documentation about fault tolerance features handling in local chunking #​5338
🔨 Tasks
  • Update test containers version #​5288
  • Add Dependabot for GitHub Actions #​5259
❤️ Contributors

Thank you to all the contributors who worked on this release:

@​jzheaux, @​trisberg, @​marschall , @​beatjost, @​Jony-Jas, @​HongYeseul, @​Wordbe, @​scordio, @​KMGeon, @​banseok1216, @​quaff , @​GaBaljaintheroom and @​yunhobb

v6.0.2

Compare Source

⭐ New features

  • Add ZonedDateTime and OffsetDateTime support to JobParametersConverter #​5178

🐞 Bug fixes

  • Compatibility issues between v5 and v6 when Migrating from CommandLineJobRunner to CommandLineJobOperator #​5227
  • MongoStepExecutionDao.countStepExecutions() ignores stepName parameter #​5220
  • OptimisticLockingFailureException due to race condition in graceful shutdown #​5217
  • ChunkOrientedStep#doExecute updates the StepExecution outside of the chunk transaction boundary. #​5199
  • Jackson2ExecutionContextStringSerializer fails to serialize job parameters with JobStep #​5191
  • StepContribution counters are not thread-safe during parallel chunk processing #​5188
  • ScopeNotActiveException with @StepScope ItemProcessor in Multi-threaded ChunkOrientedStep #​5183
  • ChunkOrientedStep updates ExecutionContext even when a chunk fails, leading to data loss on restart #​5182
  • MetaDataInstanceFactory default values cause StepContext collision in StepScopeTestUtils when @SpringBatchTest is active #​5181
  • Wrong database migration to spring-batch 6.x for DB2LUW #​5166
  • OptimisticLockingFailureException in JobRepositoryTestUtils.removeJobExecutions() since Spring Batch 5.2.3 #​5161
  • The implementation of jumpToItem(int itemLastIndex) in AbstractPaginatedDataItemReader does not handle restart behavior correctly. #​5136
  • Incorrect resource cleanup order in AbstractCursorItemReader#doClose leads to inconsistent behavior #​5109
  • Intermittent OptimisticLockingFailureException when starting job using jobOperator.start() with asyncTaskExecutor #​5106
  • ClosedChannelException when using StaxEventItemWriter in combination with MultiResourceItemWriter #​5098
  • WriteConflict in MongoSequenceIncrementer during parallel job executions #​4960

🚀 Enhancements

  • Use Spring Framework's CollectionUtils to create HashSet/HashMap #​5175
  • Remove redundant assert in StoredProcedureItemReader #​5119

📔 Documentation

  • Fix typo in whatsnew.adoc and in integration tests #​5207
  • Clarify ChunkListener changes in v6 #​5226
  • Incorrect documentation about concurrent steps in v6 #​5228
  • correct JobOperatorFactoryBean sample code #​5103

🔨 Tasks

  • Update project template in issue reporting guide #​5212

🆙 Dependency Upgrades

Spring Framework: 7.0.3
Spring Integration: 7.0.2
Spring AMQP: 4.0.2
Spring Kafka: 4.0.2
Spring Data: 4.0.2
Micrometer: 1.16.2

❤️ Contributors

Thank you to all the contributors who worked on this release:

@​wocks1123, @​thswlsqls, @​xeounxzxu, @​LeeHyungGeol, @​KMGeon, @​HongYeseul, @​banseok1216, @​quaff, and @​songhees

v6.0.1

Compare Source

🐞 Bug fixes

  • Local Chunking: BatchStatus remains COMPLETED when worker thread write fails #​5172
  • RemotePartitioningWorkerStepBuilder doesn't override all configuration methods from StepBuilder #​5150
  • Step execution no longer persisted after partitioner creates the context #​5138
  • Fault-tolerant step: retry(Class) traverses exception causes, skip(Class) does not #​5127
  • ChunkOrientedStep.ChunkTracker is not reset after step, allowing only a single execution of a particular step #​5126
  • Incorrect deprecation warning in JobOperatorTestUtils.getJob() #​5123
  • MapJobRegistry registers discovered Jobs by their bean name instead of their job name #​5122
  • StepExecution Update in SimpleJobOperator.stop() Causes JobExecution.BatchStatus.UNKNOWN after graceful stop #​5120
  • ExecutionContext not loaded when step execution is queried from the job repository #​5117
  • MetaDataInstanceFactory.createStepExecution(JobParameters) does not propagate JobParameters to StepExecution #​5115
  • stop() does not prevent upcoming steps to be executed anymore #​5114
  • @EnableMongoJobRepository fails with Invalid transaction attribute token: [SERIALIZABLE] #​5105
  • EmptyResultDataAccessException in JobRepository.findRunningJobExecutions for a completed job execution #​5104
  • Partitioned step stops processing when first partition is finished in new chunk processing implementation #​5099
  • Minor logging issue when a step or job completes instantly #​5037

🚀 Enhancements

  • Enhance ResourcelessJobRepository implementation for testing #​5139
  • Introduce schema-drop-mongodb.jsonl #​5155
  • Improve retrieval of running job executions #​5131

📔 Documentation

  • Fix typo in testing.adoc startJob method name #​5148
  • Fix some misspelling in the docs #​5111
  • Class JobParametersInvalidException mentioned in "Spring Batch 6.0 Migration Guide" but is not available in 6.0.0 #​5152

🆙 Dependency Upgrades

Spring Framework: 7.0.2
Spring Integration: 7.0.1
Spring AMQP: 4.0.1
Spring Kafka: 4.0.1
Spring Data: 4.0.1
Spring Ldap: 4.0.1
Micrometer: 1.16.1

❤️ Contributors

Thank you to all the contributors who worked on this release:

@​arey, @​cppwfs, @​quaff, @​benelog, @​banseok1216, @​KILL9-NO-MERCY, @​janossch, @​therepanic


Full Changelog: spring-projects/spring-batch@v6.0.0...v6.0.1

v6.0.0

Compare Source

Spring Batch 6.0 is a major release that comes with several new features, enhancements, and bug fixes. This release introduces a number of API breaking changes and deprecations. Please refer to the migration guide for the full list of changes.

⭐ New features

  • Migrate to JSpecify annotations for nullability constraints #​4673
  • Add API to recover failed job executions #​4876
  • Add support for observability with the Java Flight Recorder #​4972
  • Add ability to externally stop any kind of step #​4965
  • Revisit the concurrency model #​4955
  • Use contextual lambdas to configure batch artefacts #​4818
  • Add support for local chunking #​5021
  • Add support for remote step executions #​5024
  • Add shutdown hook to gracefully stop job executions on sigterm #​5028
  • Add support for Jackson 3 #​4842
  • Support SEDA with Spring Integration MessageChannels #​4719
  • Introduce a modern command line batch operator #​4899
  • Add ability to use bean names for jobs and steps #​4858
  • Make MapJobRegistry smart enough to auto register jobs defined in the application context #​4855
  • Make MessageChannelPartitionHandler usable with any job repository implementations #​4917
  • Add optimistic locking for meta-data deletion #​4793
  • Make Job interface a functional interface #​4966
  • Make Step interface a functional interface #​4976
  • Add StepExecution parameter to StoppableTasklet.stop() #​4703
  • Add ability to configure Mongo sequence incrementers #​5018
  • Remove usage of Micrometer's global static meter registry #​4968
  • Add support for delete operations in MongoDB DAOs #​5060
  • Use existing ItemWriter with CompositeItemWriter expecting different item types #​4735
  • Automatically register ItemHandler as StepListener instead of only StepExecutionListener in ChunkOrientedStepBuilder #​5087

🚀 Enhancements

  • Improve experience when configuring an alternative JobRepository #​4718
  • Improve performance of JdbcStepExecutionDao::getStepExecution #​4799
  • Improve update sql for optimistic locking #​4792
  • Improve JobOperator API by using domain types instead of primitive types #​4845
  • Improve JobOperator by reducing its scope to job operations only #​4833
  • Core API simplification #​4847
  • Move core APIs in dedicated packages #​4877
  • Move listener APIs under core.listener package #​4867
  • Move core.explore package under core.repository #​4827
  • Move core partitioning APIs under org.springframework.batch.core.partition #​4849
  • Move DAOs implementations to separate packages #​4848
  • Remove unnecessary generic from JobKeyGenerator interface #​4886
  • Remove usage of JobFactory in `JobRegistry`` #​4854
  • Remove dependency to JobExplorer in SimpleJobOperator #​4817
  • Remove JobExplorer bean registration from the default batch configuration #​4825
  • Remove unnecessary reflection in RemoteChunkHandlerFactoryBean #​4839
  • Rename SimpleJobOperator to TaskExecutorJobOperator #​4834
  • Rename JobRepositoryFactoryBean to JdbcJobRepositoryFactoryBean #​4829
  • FlatFileItemReaderBuilder : raise check exception on build #​4757
  • Make JobOperator extend JobLauncher #​4832
  • Make JobRepository extend JobExplorer #​4824
  • Redundant methods in JobExplorer/JobInstanceDao APIs #​4821
  • Introduce ErrorProne, fix compiler warnings #​4807
  • Add Redis integration tests #​4892
  • Fail test if no exception is thrown in testErrorMessageWhenNoLineTokenizerWasProvided #​4883
  • Refactor AOT proxy hints for better type safety #​4881
  • Refactor ExitStatus#isRunning for type-safety #​4783
  • Mark argument to ExitStatus#equals as nullable #​4823
  • Use typesafe variant of ctx::getBean instead #​4803
  • Use jdbcTemplate.queryForStream().findFirst() where appropriate #​4802
  • Reuse existing SQL where feasible #​4801
  • Revisit the chunk-oriented processing model implementation #​3950
  • Allow a StepInterruptionPolicy to be injected through the step builder #​1641
  • Make JobRegistry optional in the default batch configuration #​4971
  • Make transaction manager optional in JobOperatorFactoryBean #​4970
  • Make transaction manager optional in Tasklet and Chunk-Oriented steps #​4974
  • Segregate StepLocator methods in a sub interface #​5015
  • Move infrastructure APIs under a specific package #​5014
  • Revisit exception declaration in public APIs #​5013
  • Move built-in job parameter incrementers to the org.springframework.batch.core.job.parameters package #​5011
  • Broken encapsulation of job parameter attributes #​5010
  • Incorrect nullability definition in public APIs input #​4989
  • Update retrieval methods with clear nullability semantics #​4988
  • Incorrect default constructor in AbstractStep #​4984
  • Make domain model entities immutable #​1870
  • Improve performance of JdbcStepExecutionDao::getLastStepExecution #​4798
  • Optimize step executions counting in MongoStepExecutionDao #​5061
  • Change configuration log level to debug #​5055
  • Remove unused id from persistence domain object #​5054
  • Missing comma in StepExecution#getSummary #​5025
  • Improve performance of DefaultFieldSet.indexOf() method #​4930
  • Improve MessageChannelPartitionHandler::receiveReplies #​4776
  • CommandLineJobOperator improve state validation for restart/abandon and enhance logging #​5057
  • Inaccurate error message when using ResourcelessJobRepository with a partitioned step #​4732
  • SQL Server DDL for metadata tables should use NVARCHAR to prevent performance degradation and deadlocks from implicit conversion #​5064
  • Potential parameter key collision in .getUniqueJobParameters() #​5088

🐞 Bug fixes

  • RecordFieldExtractor in FlatFileItemWriterBuilder doesn't reflect names() setting #​4916
  • Incorrect warning when starting a job with an empty parameters set #​4914
  • Incorrect handling of job parameters when using a JobParametersIncrementer #​4910
  • Write Skip Count Not Updated in Chunk Processing #​4514
  • Build failure with GraalVM 24 #​4937
  • Incorrect step execution id generation in ResourcelessJobRepository #​4975
  • Conflicting info in @AfterChunk/@BeforeChunk annotation javadoc to current implementation #​4961
  • RecordFieldSetMapper fails with Record without components #​4900
  • JsonObjectReader fails to read JSON array format due to Jackson 3.0 FAIL_ON_TRAILING_TOKENS default change #​5047
  • ChunkOrientedStep: Unnecessary ItemReader.read() calls when chunk size exceeds item count #​5048
  • JobParameter constructor validates wrong parameter (value instead of name) #​5049
  • Incorrect error message in JobOperatorTestUtils constructor #​5051
  • ChunkOrientedStepBuilder throws IllegalArgumentException when retry() is used(configured) without retryLimit() #​5068
  • ChunkOrientedStepBuilder throws IllegalArgumentException when skip() is used(configured) without skipLimit() #​5069
  • MongoJobExecutionDao doesn't handle temporal job parameter types correctly #​5063
  • Incorrect Step status in StepExecutionListener#afterStep #​4362
  • Cannot deserialize TopicPartition from JobRepository #​3797
  • Incorrect restart behaviour with no identifying job parameters #​4755
  • Incorrect ordering when retrieving job executions with JobExecutionDao #​5062
  • Errors are not propagated from job execution #​808
  • Spring batch terminate in started status after sigterm #​4023
  • Jdbc Hibernate Connection closed prematurly when launching a Job #​5006
  • OptimisticLockingFailureException caused by jobExecutionDao.updateJobExecution(jobExecution) #​5022
  • Missing GraalVM native image hints for StepContext.getJobParameters() #​5041
  • StepBuilder(JobRepository) fails due to timing mismatch between constructor validation and BeanNameAware #​5027
  • RecursiveCollectionLineAggregator.aggregate() fails on empty collection input #​5023
  • Incorrect retrieval of last step execution with MongoDB #​4896
  • Fix potential NPE in JdbcJobExecutionDao #​5044
  • Error in the metrics registration with a meter registry customization #​4759
  • Activation of Actuator & Prometheus rise a WARN in the log due to bad configuration #​4753
  • ChunkOrientedStepBuilder: Default SkipPolicy should be NeverSkipItemSkipPolicy when only retry is configured (not AlwaysSkipItemSkipPolicy) #​5077
  • ChunkOrientedStepBuilder: All Throwables (including Errors) are retried when only retryLimit() is configured without retry() #​5078
  • ChunkOrientedStep does not throw exception when skipPolicy.shouldSkip() returns false #​5079
  • ChunkOrientedStepBuilder does not apply StepBuilderHelper properties (allowStartIfComplete, startLimit, stepExecutionListeners) #​5093
  • ChunkOrientedStep: Retry exhausted in ItemWriter always triggers Chunk Scanning regardless of skip eligibility #​5091
  • JobLauncherTestUtils throws an NPE at getJobLauncher() in Batch 6 RC2 #​5090

📖 Documentation updates

  • Documentation for disabling spring batch metrics is incomplete #​4800
  • Polish code block style and fix typo in whatsnew.adoc #​4901
  • Fix javadoc in JdbcCursorItemReaderBuilder #​4838
  • Correct comment in RemoteChunkingJobFunctionalTests #​4822
  • Include Javadocs as part of Antora docs
  • FaultTolerantStepBuilder#skipLimit Javadoc is misleading with custom skipPolicy #​4963
  • Fix grammar error in testing documentation #​4979
  • Improve javadoc of JobInstanceDao#getJobNames method #​5043
  • Elaborate usage of PlatformTransactionManager #​4787
  • Document requirements of CommandLineJobOperator in the reference docs #​5026
  • Clarify MongoDB job repository configuration in reference documentation #​4859
  • Unclear reference to example about job parameters in reference documentation #​4791

🆙 Dependency Upgrades

  • Spring Framework: 7.0.0
  • Spring Integration: 7.0.0
  • Spring AMQP: 4.0.0
  • Spring Kafka: 4.0.0
  • Spring Data: 4.0.0
  • Spring Ldap: 4.0.0
  • Micrometer: 1.16.0

🔨 Tasks

  • Add integration tests for DDL migration scripts #​4289
  • Replace usage of JobExplorer with JobRepository in RemoteStepExecutionAggregator #​4928
  • Replace usage of JobExplorer with JobRepository in SystemCommandTasklet #​4927
  • Replace usage of JobLauncher with JobOperator in JobLaunchingGateway and JobLaunchingMessageHandler #​4924
  • Replace usage of JobLauncher with JobOperator in JobStep #​4923
  • Replace usage of JobExplorer with JobRepository in StepExecutionRequestHandler #​4918
  • Rename JobLauncherTestUtils to JobOperatorTestUtils #​4920
  • Rename JobExplorerFactoryBean to JdbcJobExplorerFactoryBean #​4846
  • Deprecate StepRunner #​4921
  • Deprecate modular job configuration through EnableBatchProcessing #​4866
  • Remove usage of JobExplorer in BatchIntegrationConfiguration #​4919
  • Remove deprecated APIs scheduled for removal in v6 #​4819
  • Update GraalVM runtime hints #​4844
  • Deprecate JobRepository#getStepExecution(long jobExecutionId, long stepExecutionId) #​5007
  • Deprecate the batch XML namespace #​4843
  • Deprecate JUnit 4 support #​4816
  • Update Micrometer's Prometheus support to version 1.x #​4689

❤️ Contributors

Many thanks to all contributors who made this release possible!

@​darth-raijin, @​itis821, @​jbotuck, @​martinfrancois, @​noojung, @​patrickwinti, @​sieunie, @​sjiwon, @​therepanic, @​thelightway24, @​ch200203, @​monnetchr, @​Chienlin1014, @​lucas-gautier, @​PENEKhun, @​kyb4312.

A special thanks to @​scordio , @​quaff and @​KILL9-NO-MERCY for their amazing feedback and numerous contributions 🙏

v5.2.5

Compare Source

⭐ New features

  • Add ZonedDateTime and OffsetDateTime support to JobParametersConverter #​5178

🐞 Bug fixes

  • Cannot deserialize TopicPartition from JobRepository #​3797
  • Errors are not propagated from job execution #​808
  • Minor logging issue when a step or job completes instantly #​5037
  • The implementation of jumpToItem(int itemLastIndex) in AbstractPaginatedDataItemReader does not handle restart behavior correctly. #​5136
  • Incorrect resource cleanup order in AbstractCursorItemReader#doClose leads to inconsistent behavior #​5109
  • OptimisticLockingFailureException in JobRepositoryTestUtils.removeJobExecutions() since Spring Batch 5.2.3 #​5161
  • WriteConflict in MongoSequenceIncrementer during parallel job executions #​4960

📔 Documentation

  • Elaborate usage of PlatformTransactionManager #​4787

🆙 Dependency Upgrades

  • Spring Framework: 6.2.17
  • Micrometer: 1.14.14
  • Spring Integration: 6.4.10
  • Spring AMQP: 3.2.9
  • Spring Data: 3.4.13
  • Spring Ldap: 3.2.16

❤️ Contributors

Thank you to all the contributors who contributed to this release!


Full change log: spring-projects/spring-batch@v5.2.4...v5.2.5


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/major-spring-batch branch from 7b7c1cc to 51197d2 Compare November 23, 2025 06:12
@renovate renovate bot force-pushed the renovate/major-spring-batch branch from 51197d2 to e0c4d5f Compare December 17, 2025 10:37
@renovate renovate bot force-pushed the renovate/major-spring-batch branch from e0c4d5f to 9c1f15e Compare January 21, 2026 22:11
@renovate renovate bot force-pushed the renovate/major-spring-batch branch from 9c1f15e to 2291047 Compare March 18, 2026 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants