From 21a4ea540e3a7ed1e1e5d253d41fc4c87fe723e2 Mon Sep 17 00:00:00 2001 From: dsyer Date: Sun, 30 Sep 2007 11:47:49 +0000 Subject: [PATCH] OPEN - issue BATCH-90: StepExecution and StepExecutionContext are parallel domains, and StepExecution is by comparison anaemic http://opensource.atlassian.com/projects/spring/browse/BATCH-90 Tidy the JobInstance up a bit (no need for setter of identifier) --- .../facade/SimpleJobExecutorFacade.java | 2 +- .../facade/VolatileJobExecutionRegistry.java | 5 ++- .../repository/dao/HibernateJobDao.java | 3 +- .../execution/repository/dao/MapJobDao.java | 3 +- .../execution/repository/dao/SqlJobDao.java | 6 ++-- .../repository/dao/JobInstance.hbm.xml | 4 +-- .../facade/SimpleJobExecutorFacaderTests.java | 9 +++-- .../VolatileJobExecutionRegistryTests.java | 27 +++++++++----- .../repository/SimpleJobRepositoryTests.java | 6 ++-- .../dao/EntityNameInterceptorTests.java | 12 +++---- .../repository/dao/MapStepDaoTests.java | 4 +-- .../repository/dao/SqlStepDaoPrefixTests.java | 2 +- .../step/simple/DefaultStepExecutorTests.java | 35 +++++++++++-------- .../simple/StepExecutorInterruptionTests.java | 2 +- 14 files changed, 64 insertions(+), 56 deletions(-) diff --git a/execution/src/main/java/org/springframework/batch/execution/facade/SimpleJobExecutorFacade.java b/execution/src/main/java/org/springframework/batch/execution/facade/SimpleJobExecutorFacade.java index 5fae84ebe..66262174e 100644 --- a/execution/src/main/java/org/springframework/batch/execution/facade/SimpleJobExecutorFacade.java +++ b/execution/src/main/java/org/springframework/batch/execution/facade/SimpleJobExecutorFacade.java @@ -127,7 +127,7 @@ public class SimpleJobExecutorFacade implements JobExecutorFacade, StatisticsPro .getJobConfiguration(jobRuntimeInformation.getName()); final JobInstance job = jobRepository.findOrCreateJob(jobConfiguration, jobRuntimeInformation); - JobExecutionContext jobExecutionContext = jobExecutionRegistry.register(jobRuntimeInformation, job); + JobExecutionContext jobExecutionContext = jobExecutionRegistry.register(job); ExitStatus exitStatus = ExitStatus.FAILED; try { diff --git a/execution/src/main/java/org/springframework/batch/execution/facade/VolatileJobExecutionRegistry.java b/execution/src/main/java/org/springframework/batch/execution/facade/VolatileJobExecutionRegistry.java index 1b43c6404..96bd1362b 100644 --- a/execution/src/main/java/org/springframework/batch/execution/facade/VolatileJobExecutionRegistry.java +++ b/execution/src/main/java/org/springframework/batch/execution/facade/VolatileJobExecutionRegistry.java @@ -98,7 +98,10 @@ public class VolatileJobExecutionRegistry implements JobExecutionRegistry { * @see org.springframework.batch.container.common.executor.JobExecutionRegistry#register(org.springframework.batch.container.common.runtime.JobRuntimeInformation, * org.springframework.batch.container.common.domain.JobExecution) */ - public JobExecutionContext register(JobIdentifier jobIdentifier, JobInstance job) { + public JobExecutionContext register(JobInstance job) { + + JobIdentifier jobIdentifier = job.getIdentifier(); + if (isRegistered(jobIdentifier)) { return get(jobIdentifier); } diff --git a/execution/src/main/java/org/springframework/batch/execution/repository/dao/HibernateJobDao.java b/execution/src/main/java/org/springframework/batch/execution/repository/dao/HibernateJobDao.java index 2192f9172..a6c127e41 100644 --- a/execution/src/main/java/org/springframework/batch/execution/repository/dao/HibernateJobDao.java +++ b/execution/src/main/java/org/springframework/batch/execution/repository/dao/HibernateJobDao.java @@ -51,8 +51,7 @@ public class HibernateJobDao extends HibernateDaoSupport implements JobDao { validateJobIdentifier(jobIdentifier); - JobInstance job = new JobInstance(); - job.setIdentifier(jobIdentifier); + JobInstance job = new JobInstance(jobIdentifier); Long jobId = (Long) getHibernateTemplate().save(job); diff --git a/execution/src/main/java/org/springframework/batch/execution/repository/dao/MapJobDao.java b/execution/src/main/java/org/springframework/batch/execution/repository/dao/MapJobDao.java index ffec3a2ac..b2532383e 100644 --- a/execution/src/main/java/org/springframework/batch/execution/repository/dao/MapJobDao.java +++ b/execution/src/main/java/org/springframework/batch/execution/repository/dao/MapJobDao.java @@ -45,8 +45,7 @@ public class MapJobDao implements JobDao { } public JobInstance createJob(JobIdentifier jobIdentifier) { - JobInstance job = new JobInstance(new Long(currentId++)); - job.setIdentifier(jobIdentifier); + JobInstance job = new JobInstance(jobIdentifier, new Long(currentId++)); jobsById.put(job.getId(), job); return job; diff --git a/execution/src/main/java/org/springframework/batch/execution/repository/dao/SqlJobDao.java b/execution/src/main/java/org/springframework/batch/execution/repository/dao/SqlJobDao.java index 4e257bdd5..6170ffcd1 100644 --- a/execution/src/main/java/org/springframework/batch/execution/repository/dao/SqlJobDao.java +++ b/execution/src/main/java/org/springframework/batch/execution/repository/dao/SqlJobDao.java @@ -119,8 +119,7 @@ public class SqlJobDao implements JobDao, InitializingBean { new Long(defaultJobId.getJobRun()) }; jdbcTemplate.update(getCreateJobQuery(), parameters); - JobInstance job = new JobInstance(jobId); - job.setIdentifier(jobIdentifier); + JobInstance job = new JobInstance(jobIdentifier, jobId); return job; } @@ -145,9 +144,8 @@ public class SqlJobDao implements JobDao, InitializingBean { RowMapper rowMapper = new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { - JobInstance job = new JobInstance(new Long(rs.getLong(1))); + JobInstance job = new JobInstance(jobIdentifier, new Long(rs.getLong(1))); job.setStatus(BatchStatus.getStatus(rs.getString(2))); - job.setIdentifier(jobIdentifier); return job; } diff --git a/execution/src/main/resources/org/springframework/batch/execution/repository/dao/JobInstance.hbm.xml b/execution/src/main/resources/org/springframework/batch/execution/repository/dao/JobInstance.hbm.xml index 874944459..08e40599c 100644 --- a/execution/src/main/resources/org/springframework/batch/execution/repository/dao/JobInstance.hbm.xml +++ b/execution/src/main/resources/org/springframework/batch/execution/repository/dao/JobInstance.hbm.xml @@ -25,7 +25,7 @@ - - diff --git a/execution/src/test/java/org/springframework/batch/execution/facade/SimpleJobExecutorFacaderTests.java b/execution/src/test/java/org/springframework/batch/execution/facade/SimpleJobExecutorFacaderTests.java index b24edb650..019882068 100644 --- a/execution/src/test/java/org/springframework/batch/execution/facade/SimpleJobExecutorFacaderTests.java +++ b/execution/src/test/java/org/springframework/batch/execution/facade/SimpleJobExecutorFacaderTests.java @@ -80,11 +80,10 @@ public class SimpleJobExecutorFacaderTests extends TestCase { jobRepository.findOrCreateJob(jobConfiguration, jobRuntimeInformation); jobExecutor = new JobExecutor() { public ExitStatus run(JobConfiguration configuration, JobExecutionContext jobExecutionContext) throws BatchCriticalException { - jobExecutionContext.getJob().setIdentifier(jobRuntimeInformation); return ExitStatus.FINISHED; } }; - JobInstance job = new JobInstance(); + JobInstance job = new JobInstance(jobRuntimeInformation); JobExecutionContext jobExecutionContext = new JobExecutionContext(jobRuntimeInformation, job); jobRepositoryControl.setReturnValue(job); jobExecutor.run(jobConfiguration, jobExecutionContext); @@ -127,7 +126,7 @@ public class SimpleJobExecutorFacaderTests extends TestCase { }); final SimpleJobIdentifier jobRuntimeInformation = new SimpleJobIdentifier("foo"); jobRepository.findOrCreateJob(jobConfiguration, jobRuntimeInformation); - JobInstance job = new JobInstance(); + JobInstance job = new JobInstance(jobRuntimeInformation); jobRepositoryControl.setReturnValue(job); jobRepositoryControl.replay(); @@ -188,7 +187,7 @@ public class SimpleJobExecutorFacaderTests extends TestCase { JobExecutionRegistry jobExecutionRegistry = new VolatileJobExecutionRegistry(); simpleContainer.setJobExecutionRegistry(jobExecutionRegistry); SimpleJobIdentifier runtimeInformation = new SimpleJobIdentifier("TestJob"); - JobExecutionContext context = jobExecutionRegistry.register(runtimeInformation, new JobInstance(new Long(0))); + JobExecutionContext context = jobExecutionRegistry.register(new JobInstance(runtimeInformation, new Long(0))); RepeatContextSupport stepContext = new RepeatContextSupport(null); RepeatContextSupport chunkContext = new RepeatContextSupport(stepContext); @@ -213,7 +212,7 @@ public class SimpleJobExecutorFacaderTests extends TestCase { JobExecutionRegistry jobExecutionRegistry = (JobExecutionRegistry) control.getMock(); simpleContainer.setJobExecutionRegistry(jobExecutionRegistry); SimpleJobIdentifier runtimeInformation = new SimpleJobIdentifier("TestJob"); - JobExecutionContext jobExecutionContext = new JobExecutionContext(runtimeInformation, new JobInstance(new Long(0))); + JobExecutionContext jobExecutionContext = new JobExecutionContext(runtimeInformation, new JobInstance(runtimeInformation, new Long(0))); jobExecutionContext.registerStepContext(new RepeatContextSupport(null)); jobExecutionContext.registerChunkContext(new RepeatContextSupport(null)); control.expectAndReturn(jobExecutionRegistry.findAll(), Collections.singleton(jobExecutionContext)); diff --git a/execution/src/test/java/org/springframework/batch/execution/facade/VolatileJobExecutionRegistryTests.java b/execution/src/test/java/org/springframework/batch/execution/facade/VolatileJobExecutionRegistryTests.java index 1ad6e58e9..f1a99db9e 100644 --- a/execution/src/test/java/org/springframework/batch/execution/facade/VolatileJobExecutionRegistryTests.java +++ b/execution/src/test/java/org/springframework/batch/execution/facade/VolatileJobExecutionRegistryTests.java @@ -30,41 +30,50 @@ import org.springframework.batch.core.runtime.SimpleJobIdentifier; public class VolatileJobExecutionRegistryTests extends TestCase { private SimpleJobIdentifier runtimeInformation = new SimpleJobIdentifier("foo"); - private JobInstance job = new JobInstance(new Long(0)); + private JobInstance job = new JobInstance(runtimeInformation, new Long(0)); private VolatileJobExecutionRegistry registry = new VolatileJobExecutionRegistry(); public void testAddAndRetrieveSingle() throws Exception { - JobExecutionContext context = registry.register(runtimeInformation, job); + JobExecutionContext context = registry.register(job); assertEquals(context, registry.get(runtimeInformation)); } public void testAddAndFindAll() throws Exception { - JobExecutionContext context = registry.register(runtimeInformation, job); + JobExecutionContext context = registry.register(job); Collection list = registry.findAll(); assertEquals(1, list.size()); assertTrue(list.contains(context)); } public void testAddAndFindAllMultiple() throws Exception { - JobExecutionContext context1 = registry.register(runtimeInformation, job); - JobExecutionContext context2 = registry.register(new SimpleJobIdentifier("spam"), job); + JobExecutionContext context1 = registry.register(job); + JobExecutionContext context2 = registry.register(new JobInstance(new SimpleJobIdentifier("bar"), new Long(1))); Collection list = registry.findAll(); assertEquals(2, list.size()); assertTrue(list.contains(context1)); assertTrue(list.contains(context2)); } + public void testRegisterSamejobTwice() throws Exception { + JobExecutionContext context1 = registry.register(job); + JobExecutionContext context2 = registry.register(job); + Collection list = registry.findAll(); + assertEquals(1, list.size()); + assertTrue(list.contains(context1)); + assertTrue(list.contains(context2)); + } + public void testAddAndFindByName() throws Exception { - JobExecutionContext context = registry.register(runtimeInformation, job); - registry.register(new SimpleJobIdentifier("bar"), job); + JobExecutionContext context = registry.register(job); + registry.register(job); Collection list = registry.findByName(runtimeInformation.getName()); assertEquals(1, list.size()); assertTrue(list.contains(context)); } public void testAddAndUnregister() throws Exception { - registry.register(runtimeInformation, job); + registry.register(job); assertTrue(registry.isRegistered(runtimeInformation)); registry.unregister(runtimeInformation); assertFalse(registry.isRegistered(runtimeInformation)); @@ -72,7 +81,7 @@ public class VolatileJobExecutionRegistryTests extends TestCase { public void testAddAndIsRegistered() throws Exception { assertFalse(registry.isRegistered(runtimeInformation)); - registry.register(runtimeInformation, job); + registry.register(job); assertTrue(registry.isRegistered(runtimeInformation)); } } diff --git a/execution/src/test/java/org/springframework/batch/execution/repository/SimpleJobRepositoryTests.java b/execution/src/test/java/org/springframework/batch/execution/repository/SimpleJobRepositoryTests.java index 2b959acac..2fa825797 100644 --- a/execution/src/test/java/org/springframework/batch/execution/repository/SimpleJobRepositoryTests.java +++ b/execution/src/test/java/org/springframework/batch/execution/repository/SimpleJobRepositoryTests.java @@ -97,7 +97,7 @@ public class SimpleJobRepositoryTests extends TestCase { jobConfiguration.setSteps(stepConfigurations); - databaseJob = new JobInstance(new Long(1)); + databaseJob = new JobInstance(jobRuntimeInformation, new Long(1)); databaseStep1 = new StepInstance(new Long(1)); databaseStep2 = new StepInstance(new Long(2)); @@ -168,7 +168,7 @@ public class SimpleJobRepositoryTests extends TestCase { List jobs = new ArrayList(); jobs.add(databaseJob); - jobs.add(new JobInstance()); + jobs.add(new JobInstance(jobRuntimeInformation)); jobDao.findJobs(jobRuntimeInformation); jobDaoControl.setReturnValue(jobs); jobDaoControl.replay(); @@ -254,7 +254,7 @@ public class SimpleJobRepositoryTests extends TestCase { } // successful update - updateJob = new JobInstance(new Long(0L)); + updateJob = new JobInstance(null, new Long(0L)); jobDao.update(updateJob); jobDaoControl.replay(); jobRepository.update(updateJob); diff --git a/execution/src/test/java/org/springframework/batch/execution/repository/dao/EntityNameInterceptorTests.java b/execution/src/test/java/org/springframework/batch/execution/repository/dao/EntityNameInterceptorTests.java index 97e1f7261..9be98c1e6 100644 --- a/execution/src/test/java/org/springframework/batch/execution/repository/dao/EntityNameInterceptorTests.java +++ b/execution/src/test/java/org/springframework/batch/execution/repository/dao/EntityNameInterceptorTests.java @@ -13,28 +13,24 @@ public class EntityNameInterceptorTests extends TestCase { private EntityNameInterceptor interceptor = new EntityNameInterceptor(); public void testGetEntityNameForScheduledJobIdentifier() { - JobInstance job = new JobInstance(); - job.setIdentifier(new ScheduledJobIdentifier("foo")); + JobInstance job = new JobInstance(new ScheduledJobIdentifier("foo")); assertEquals("ScheduledJobInstance", interceptor.getEntityName(job)); } public void testGetEntityNameForSimpleJobIdentifier() { - JobInstance job = new JobInstance(); - job.setIdentifier(new SimpleJobIdentifier("foo")); + JobInstance job = new JobInstance(new SimpleJobIdentifier("foo")); assertEquals("SimpleJobInstance", interceptor.getEntityName(job)); } public void testSetIdentifierTypesWithString() { interceptor.setIdentifierTypes(Collections.singletonMap(ScheduledJobIdentifier.class.getName(), "foo")); - JobInstance job = new JobInstance(); - job.setIdentifier(new ScheduledJobIdentifier("foo")); + JobInstance job = new JobInstance(new ScheduledJobIdentifier("foo")); assertEquals("foo", interceptor.getEntityName(job)); } public void testSetIdentifierTypesWithClass() { interceptor.setIdentifierTypes(Collections.singletonMap(ScheduledJobIdentifier.class, "foo")); - JobInstance job = new JobInstance(); - job.setIdentifier(new ScheduledJobIdentifier("foo")); + JobInstance job = new JobInstance(new ScheduledJobIdentifier("foo")); assertEquals("foo", interceptor.getEntityName(job)); } diff --git a/execution/src/test/java/org/springframework/batch/execution/repository/dao/MapStepDaoTests.java b/execution/src/test/java/org/springframework/batch/execution/repository/dao/MapStepDaoTests.java index b597075db..bf6d9f36e 100644 --- a/execution/src/test/java/org/springframework/batch/execution/repository/dao/MapStepDaoTests.java +++ b/execution/src/test/java/org/springframework/batch/execution/repository/dao/MapStepDaoTests.java @@ -40,7 +40,7 @@ public class MapStepDaoTests extends TestCase { protected void setUp() throws Exception { MapStepDao.clear(); - job = new JobInstance(new Long(jobId++)); + job = new JobInstance(null, new Long(jobId++)); step = dao.createStep(job, "foo"); } @@ -79,7 +79,7 @@ public class MapStepDaoTests extends TestCase { } public void testFindSingleWithEmptyResults() throws Exception { - StepInstance result = dao.findStep(new JobInstance(new Long(22)), "bar"); + StepInstance result = dao.findStep(new JobInstance(null, new Long(22)), "bar"); assertEquals(null, result); } diff --git a/execution/src/test/java/org/springframework/batch/execution/repository/dao/SqlStepDaoPrefixTests.java b/execution/src/test/java/org/springframework/batch/execution/repository/dao/SqlStepDaoPrefixTests.java index b28215d4a..31f41a232 100644 --- a/execution/src/test/java/org/springframework/batch/execution/repository/dao/SqlStepDaoPrefixTests.java +++ b/execution/src/test/java/org/springframework/batch/execution/repository/dao/SqlStepDaoPrefixTests.java @@ -26,7 +26,7 @@ public class SqlStepDaoPrefixTests extends TestCase { StepExecution stepExecution = new StepExecution(new Long(1), new Long(2)); StepInstance step = new StepInstance(new Long(1)); - JobInstance job = new JobInstance(new Long(1)); + JobInstance job = new JobInstance(null, new Long(1)); MockControl stepExecutionIncrementerControl = MockControl.createControl(DataFieldMaxValueIncrementer.class); DataFieldMaxValueIncrementer stepExecutionIncrementer; diff --git a/execution/src/test/java/org/springframework/batch/execution/step/simple/DefaultStepExecutorTests.java b/execution/src/test/java/org/springframework/batch/execution/step/simple/DefaultStepExecutorTests.java index 91a68e98b..40e9ece31 100644 --- a/execution/src/test/java/org/springframework/batch/execution/step/simple/DefaultStepExecutorTests.java +++ b/execution/src/test/java/org/springframework/batch/execution/step/simple/DefaultStepExecutorTests.java @@ -94,7 +94,8 @@ public class DefaultStepExecutorTests extends TestCase { public void testStepExecutor() throws Exception { StepInstance step = new StepInstance(new Long(9)); - JobExecutionContext jobExecutionContext = new JobExecutionContext(new SimpleJobIdentifier("FOO"), new JobInstance(new Long(3))); + SimpleJobIdentifier jobIdentifier = new SimpleJobIdentifier("FOO"); + JobExecutionContext jobExecutionContext = new JobExecutionContext(jobIdentifier, new JobInstance(jobIdentifier, new Long(3))); StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); stepExecutor.process(stepConfiguration, stepExecutionContext); @@ -111,7 +112,8 @@ public class DefaultStepExecutorTests extends TestCase { StepInstance step = new StepInstance(new Long(1)); step.setStepExecution(new StepExecution(new Long(1), new Long(2))); - JobExecutionContext jobExecutionContext = new JobExecutionContext(new SimpleJobIdentifier("FOO"), new JobInstance(new Long(1))); + SimpleJobIdentifier jobIdentifier = new SimpleJobIdentifier("FOO"); + JobExecutionContext jobExecutionContext = new JobExecutionContext(jobIdentifier, new JobInstance(jobIdentifier, new Long(1))); StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); stepExecutor.processChunk(stepConfiguration, stepExecutionContext); @@ -129,7 +131,8 @@ public class DefaultStepExecutorTests extends TestCase { final StepInstance step = new StepInstance(new Long(1)); step.setStepExecution(new StepExecution(new Long(1),new Long(1))); - final JobExecutionContext jobExecutionContext = new JobExecutionContext(new SimpleJobIdentifier("FOO"), new JobInstance(new Long(3))); + SimpleJobIdentifier jobIdentifier = new SimpleJobIdentifier("FOO"); + final JobExecutionContext jobExecutionContext = new JobExecutionContext(jobIdentifier, new JobInstance(jobIdentifier, new Long(3))); final StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); stepConfiguration.setTasklet(new Tasklet() { @@ -154,16 +157,12 @@ public class DefaultStepExecutorTests extends TestCase { stepExecutor.setRepository(repository); StepInstance step = new StepInstance(new Long(1)); - JobExecutionContext jobExecutionContext = new JobExecutionContext(new SimpleJobIdentifier("FOO"), new JobInstance(new Long(3))); + SimpleJobIdentifier jobIdentifier = new SimpleJobIdentifier("FOO"); + JobExecutionContext jobExecutionContext = new JobExecutionContext(jobIdentifier, new JobInstance(jobIdentifier, new Long(3))); StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); - JobInstance job = new JobInstance(new Long(1)); - job.setIdentifier(new SimpleJobIdentifier("foo_bar")); - stepExecutor.process(stepConfiguration, stepExecutionContext); assertEquals(1, processed.size()); - - // assertEquals(1, repository.findJobs(job.?).size()); } public void testIncrementRollbackCount(){ @@ -185,7 +184,8 @@ public class DefaultStepExecutorTests extends TestCase { StepInstance step = new StepInstance(new Long(1)); stepConfiguration.setTasklet(tasklet); - JobExecutionContext jobExecutionContext = new JobExecutionContext(new SimpleJobIdentifier("FOO"), new JobInstance(new Long(3))); + SimpleJobIdentifier jobIdentifier = new SimpleJobIdentifier("FOO"); + JobExecutionContext jobExecutionContext = new JobExecutionContext(jobIdentifier, new JobInstance(jobIdentifier, new Long(3))); StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); try{ @@ -216,7 +216,8 @@ public class DefaultStepExecutorTests extends TestCase { StepInstance step = new StepInstance(new Long(1)); stepConfiguration.setTasklet(tasklet); - JobExecutionContext jobExecutionContext = new JobExecutionContext(new SimpleJobIdentifier("FOO"), new JobInstance(new Long(3))); + SimpleJobIdentifier jobIdentifier = new SimpleJobIdentifier("FOO"); + JobExecutionContext jobExecutionContext = new JobExecutionContext(jobIdentifier, new JobInstance(jobIdentifier, new Long(3))); StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); try{ @@ -238,7 +239,8 @@ public class DefaultStepExecutorTests extends TestCase { MockRestartableTasklet tasklet = new MockRestartableTasklet(); stepConfiguration.setTasklet(tasklet); stepConfiguration.setSaveRestartData(true); - JobExecutionContext jobExecutionContext = new JobExecutionContext(new SimpleJobIdentifier("FOO"), new JobInstance(new Long(3))); + SimpleJobIdentifier jobIdentifier = new SimpleJobIdentifier("FOO"); + JobExecutionContext jobExecutionContext = new JobExecutionContext(jobIdentifier, new JobInstance(jobIdentifier, new Long(3))); StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); try{ @@ -261,7 +263,8 @@ public class DefaultStepExecutorTests extends TestCase { MockRestartableTasklet tasklet = new MockRestartableTasklet(); stepConfiguration.setTasklet(tasklet); stepConfiguration.setSaveRestartData(true); - JobExecutionContext jobExecutionContext = new JobExecutionContext(new SimpleJobIdentifier("FOO"), new JobInstance(new Long(3))); + SimpleJobIdentifier jobIdentifier = new SimpleJobIdentifier("FOO"); + JobExecutionContext jobExecutionContext = new JobExecutionContext(jobIdentifier, new JobInstance(jobIdentifier, new Long(3))); StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); try{ @@ -284,7 +287,8 @@ public class DefaultStepExecutorTests extends TestCase { MockRestartableTasklet tasklet = new MockRestartableTasklet(); stepConfiguration.setTasklet(tasklet); stepConfiguration.setSaveRestartData(false); - JobExecutionContext jobExecutionContext = new JobExecutionContext(new SimpleJobIdentifier("FOO"), new JobInstance(new Long(3))); + SimpleJobIdentifier jobIdentifier = new SimpleJobIdentifier("FOO"); + JobExecutionContext jobExecutionContext = new JobExecutionContext(jobIdentifier, new JobInstance(jobIdentifier, new Long(3))); StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); try{ @@ -310,7 +314,8 @@ public class DefaultStepExecutorTests extends TestCase { return ExitStatus.FINISHED; }}); stepConfiguration.setSaveRestartData(true); - JobExecutionContext jobExecutionContext = new JobExecutionContext(new SimpleJobIdentifier("FOO"), new JobInstance(new Long(3))); + SimpleJobIdentifier jobIdentifier = new SimpleJobIdentifier("FOO"); + JobExecutionContext jobExecutionContext = new JobExecutionContext(jobIdentifier, new JobInstance(jobIdentifier, new Long(3))); StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); try{ diff --git a/execution/src/test/java/org/springframework/batch/execution/step/simple/StepExecutorInterruptionTests.java b/execution/src/test/java/org/springframework/batch/execution/step/simple/StepExecutorInterruptionTests.java index 20a5d1daa..607430191 100644 --- a/execution/src/test/java/org/springframework/batch/execution/step/simple/StepExecutorInterruptionTests.java +++ b/execution/src/test/java/org/springframework/batch/execution/step/simple/StepExecutorInterruptionTests.java @@ -73,7 +73,7 @@ public class StepExecutorInterruptionTests extends TestCase { List steps = job.getSteps(); final StepInstance step = (StepInstance) steps.get(0); - JobExecutionContext jobExecutionContext = new JobExecutionContext(null, new JobInstance(new Long(0))); + JobExecutionContext jobExecutionContext = new JobExecutionContext(null, new JobInstance(null, new Long(0))); final StepExecutionContext stepExecutionContext = new StepExecutionContext(jobExecutionContext, step); stepConfiguration.setTasklet(new Tasklet() { public ExitStatus execute() throws Exception {