Skip to content

Commit 7cc11b8

Browse files
committed
Assert that a step execution has an id before execution
1 parent 8f5a3cc commit 7cc11b8

File tree

48 files changed

+158
-94
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+158
-94
lines changed

spring-batch-core/src/main/java/org/springframework/batch/core/step/AbstractStep.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,8 @@ public final void execute(StepExecution stepExecution)
201201
throws JobInterruptedException, UnexpectedJobExecutionException {
202202

203203
Assert.notNull(stepExecution, "stepExecution must not be null");
204+
Assert.state(stepExecution.getId() != null,
205+
"StepExecution has no id. It must be saved before it can be executed.");
204206
stepExecution.getExecutionContext().put(SpringBatchVersion.BATCH_VERSION_KEY, SpringBatchVersion.getVersion());
205207

206208
if (logger.isDebugEnabled()) {

spring-batch-core/src/test/java/org/springframework/batch/core/SpringBatchVersionTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.junit.jupiter.api.Test;
2121

2222
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
23+
import org.springframework.batch.core.configuration.annotation.EnableJdbcJobRepository;
2324
import org.springframework.batch.core.job.Job;
2425
import org.springframework.batch.core.job.JobExecution;
2526
import org.springframework.batch.core.job.parameters.JobParameters;
@@ -77,6 +78,7 @@ void testBatchVersionInExecutionContext() throws Exception {
7778

7879
@Configuration
7980
@EnableBatchProcessing
81+
@EnableJdbcJobRepository
8082
static class TestConfiguration {
8183

8284
@Bean

spring-batch-core/src/test/java/org/springframework/batch/core/configuration/annotation/JobBuilderConfigurationTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ private void testJob(String jobName, BatchStatus status, int stepExecutionCount,
9898

9999
@Configuration
100100
@EnableBatchProcessing
101+
@EnableJdbcJobRepository
101102
@Import(DataSourceConfiguration.class)
102103
public static class TestConfiguration {
103104

@@ -165,6 +166,7 @@ protected Step step3(JobRepository jobRepository) throws Exception {
165166

166167
@Configuration
167168
@EnableBatchProcessing
169+
@EnableJdbcJobRepository
168170
@Import(DataSourceConfiguration.class)
169171
public static class BeansConfigurer {
170172

spring-batch-core/src/test/java/org/springframework/batch/core/configuration/support/DefaultBatchConfigurationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ void testDefaultInfrastructureBeansRegistration() {
8686
}
8787

8888
@Configuration
89-
static class MyJobConfiguration extends DefaultBatchConfiguration {
89+
static class MyJobConfiguration extends JdbcDefaultBatchConfiguration {
9090

9191
@Bean
9292
public Step myStep(JobRepository jobRepository, PlatformTransactionManager transactionManager) {

spring-batch-core/src/test/java/org/springframework/batch/core/job/builder/FlowJobBuilderTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.junit.jupiter.api.Test;
2929
import org.springframework.batch.core.BatchStatus;
3030
import org.springframework.batch.core.ExitStatus;
31+
import org.springframework.batch.core.configuration.annotation.EnableJdbcJobRepository;
3132
import org.springframework.batch.core.job.Job;
3233
import org.springframework.batch.core.job.JobExecution;
3334
import org.springframework.batch.core.job.JobInterruptedException;
@@ -390,6 +391,7 @@ void testBuildWithJobScopedStep() throws Exception {
390391

391392
@EnableBatchProcessing
392393
@Configuration
394+
@EnableJdbcJobRepository
393395
static class JobConfiguration {
394396

395397
@Bean

spring-batch-core/src/test/java/org/springframework/batch/core/job/builder/JobBuilderTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.junit.jupiter.api.Test;
2121

2222
import org.springframework.batch.core.ExitStatus;
23+
import org.springframework.batch.core.configuration.annotation.EnableJdbcJobRepository;
2324
import org.springframework.batch.core.job.Job;
2425
import org.springframework.batch.core.job.JobExecution;
2526
import org.springframework.batch.core.listener.JobExecutionListener;
@@ -67,6 +68,7 @@ void testListeners() throws Exception {
6768

6869
@Configuration
6970
@EnableBatchProcessing
71+
@EnableJdbcJobRepository
7072
static class MyJobConfiguration {
7173

7274
@Bean

spring-batch-core/src/test/java/org/springframework/batch/core/listener/ItemListenerErrorTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.junit.jupiter.api.Test;
2727

2828
import org.springframework.batch.core.BatchStatus;
29+
import org.springframework.batch.core.configuration.annotation.EnableJdbcJobRepository;
2930
import org.springframework.batch.core.job.Job;
3031
import org.springframework.batch.core.job.JobExecution;
3132
import org.springframework.batch.core.job.parameters.JobParameters;
@@ -127,6 +128,7 @@ void testOnProcessError() throws Exception {
127128

128129
@Configuration
129130
@EnableBatchProcessing
131+
@EnableJdbcJobRepository
130132
public static class BatchConfiguration {
131133

132134
@Bean

spring-batch-core/src/test/java/org/springframework/batch/core/observability/BatchMetricsTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.junit.jupiter.api.Test;
3131

3232
import org.springframework.batch.core.ExitStatus;
33+
import org.springframework.batch.core.configuration.annotation.EnableJdbcJobRepository;
3334
import org.springframework.batch.core.job.Job;
3435
import org.springframework.batch.core.job.JobExecution;
3536
import org.springframework.batch.core.job.parameters.JobParameters;
@@ -248,6 +249,7 @@ void testBatchMetrics() throws Exception {
248249

249250
@Configuration
250251
@EnableBatchProcessing
252+
@EnableJdbcJobRepository
251253
static class MyJobConfiguration {
252254

253255
@Bean

spring-batch-core/src/test/java/org/springframework/batch/core/observability/ObservabilitySampleStepTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.junit.jupiter.api.extension.ExtendWith;
3232

3333
import org.springframework.batch.core.ExitStatus;
34+
import org.springframework.batch.core.configuration.annotation.EnableJdbcJobRepository;
3435
import org.springframework.batch.core.job.Job;
3536
import org.springframework.batch.core.job.JobExecution;
3637
import org.springframework.batch.core.job.parameters.JobParameters;
@@ -110,6 +111,7 @@ public SampleTestRunnerConsumer yourCode() {
110111

111112
@Configuration(proxyBeanMethods = false)
112113
@EnableBatchProcessing
114+
@EnableJdbcJobRepository
113115
static class TestConfig {
114116

115117
@Bean

spring-batch-core/src/test/java/org/springframework/batch/core/step/AbstractStepTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class AbstractStepTests {
3838
void testEndTimeInListener() throws Exception {
3939
// given
4040
StepExecution execution = new StepExecution("step",
41-
new JobExecution(new JobInstance(1L, "job"), new JobParameters()));
41+
new JobExecution(new JobInstance(1L, "job"), 0L, new JobParameters()), 0L);
4242
AbstractStep tested = new AbstractStep() {
4343
@Override
4444
protected void doExecute(StepExecution stepExecution) {

0 commit comments

Comments
 (0)