diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java index 817b0aa67..693b37d0a 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java @@ -31,21 +31,17 @@ import org.springframework.batch.repeat.ExitStatus; */ public class JobExecution extends Entity { - private JobInstance jobInstance; + private final JobInstance jobInstance; private transient Collection stepExecutions = new HashSet(); - private BatchStatus status = BatchStatus.STARTING; + private volatile BatchStatus status = BatchStatus.STARTING; - private Date startTime = null; + private volatile Date startTime = null; - private Date endTime = null; + private volatile Date endTime = null; - private ExitStatus exitStatus = ExitStatus.UNKNOWN; - - // Package private constructor for testing - JobExecution() { - } + private volatile ExitStatus exitStatus = ExitStatus.UNKNOWN; /** * Because a JobExecution isn't valid unless the job is set, this @@ -125,10 +121,6 @@ public class JobExecution extends Entity { return jobInstance; } - public void setJobInstance(JobInstance jobInstance) { - this.jobInstance = jobInstance; - } - /** * Accessor for the step executions. * diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java index beff37a1f..86482451c 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java @@ -39,9 +39,9 @@ import org.springframework.util.Assert; */ public class JobInstance extends Entity { - private JobParameters jobParameters; + private final JobParameters jobParameters; - private String jobName; + private final String jobName; public JobInstance(Long id, JobParameters jobParameters, String jobName) { super(id); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java index aa4c21ddb..b67d12fb3 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java @@ -24,17 +24,17 @@ package org.springframework.batch.core; */ public class StepContribution { - private int itemCount = 0; + private volatile int itemCount = 0; - private int parentSkipCount; + private final int parentSkipCount; - private int commitCount; + private volatile int commitCount; - private int readSkipCount; + private volatile int readSkipCount; - private int writeSkipCount; + private volatile int writeSkipCount; - private int uncommitedReadSkipCount; + private volatile int uncommitedReadSkipCount; /** * @param execution diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java index bd8c5a215..65cf5b9a9 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java @@ -35,38 +35,31 @@ import org.springframework.util.Assert; */ public class StepExecution extends Entity { - private JobExecution jobExecution; + private final JobExecution jobExecution; - private String stepName; + private final String stepName; - private BatchStatus status = BatchStatus.STARTING; + private volatile BatchStatus status = BatchStatus.STARTING; - private int itemCount = 0; + private volatile int itemCount = 0; - private int commitCount = 0; + private volatile int commitCount = 0; - private int rollbackCount = 0; + private volatile int rollbackCount = 0; - private int readSkipCount = 0; + private volatile int readSkipCount = 0; - private int writeSkipCount = 0; + private volatile int writeSkipCount = 0; - private Date startTime = new Date(System.currentTimeMillis()); + private volatile Date startTime = new Date(System.currentTimeMillis()); - private Date endTime = null; + private volatile Date endTime = null; - private ExecutionContext executionContext = new ExecutionContext(); + private volatile ExecutionContext executionContext = new ExecutionContext(); - private ExitStatus exitStatus = ExitStatus.UNKNOWN; + private volatile ExitStatus exitStatus = ExitStatus.UNKNOWN; - private boolean terminateOnly; - - /** - * Package private constructor for Hibernate - */ - StepExecution() { - super(); - } + private volatile boolean terminateOnly; /** * Constructor with mandatory properties. diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/JobExecutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/JobExecutionTests.java index 40dfd41e6..14e8c6f9e 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/JobExecutionTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/JobExecutionTests.java @@ -31,12 +31,8 @@ public class JobExecutionTests extends TestCase { private JobExecution execution = new JobExecution(new JobInstance(new Long(11), new JobParameters(), "foo"), new Long(12)); - /** - * Test method for - * {@link org.springframework.batch.core.JobExecution#JobExecution()}. - */ public void testJobExecution() { - assertNull(new JobExecution().getId()); + assertNull(new JobExecution(new JobInstance(null,null,"foo")).getId()); } /** @@ -150,7 +146,7 @@ public class JobExecutionTests extends TestCase { } public void testToStringWithNullJob() throws Exception { - execution = new JobExecution(); + execution = new JobExecution(new JobInstance(null,null,"foo")); assertTrue("JobExecution string does not contain id", execution.toString().indexOf("id=") >= 0); assertTrue("JobExecution string does not contain job: " + execution, execution.toString().indexOf("job=") >= 0); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/StepContributionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/StepContributionTests.java index 85063053a..0b41bd7f8 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/StepContributionTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/StepContributionTests.java @@ -23,7 +23,7 @@ import junit.framework.TestCase; */ public class StepContributionTests extends TestCase { - private StepExecution execution = new StepExecution(); + private StepExecution execution = new StepExecution("step", null); private StepContribution contribution = new StepContribution(execution); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java index 431273604..e9b18a377 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java @@ -35,22 +35,14 @@ public class StepExecutionTests extends TestCase { private StepExecution execution = newStepExecution(new StepSupport("stepName"), new Long(23)); - private StepExecution blankExecution = new StepExecution("blank", new JobExecution()); + private StepExecution blankExecution = newStepExecution(new StepSupport("blank"), null); - /** - * Test method for - * {@link org.springframework.batch.core.JobExecution#JobExecution()}. - */ public void testStepExecution() { - assertNull(new StepExecution().getId()); + assertNull(new StepExecution("step", null).getId()); } - /** - * Test method for - * {@link org.springframework.batch.core.JobExecution#JobExecution()}. - */ public void testStepExecutionWithNullId() { - assertNull(new StepExecution("stepName", new JobExecution()).getId()); + assertNull(new StepExecution("stepName", new JobExecution(new JobInstance(null,null,"foo"))).getId()); } /** @@ -138,7 +130,7 @@ public class StepExecutionTests extends TestCase { public void testNullNameIsIllegal() throws Exception { try { - new StepExecution(null, new JobExecution()); + new StepExecution(null, new JobExecution(new JobInstance(null, null, "job"))); fail(); } catch (IllegalArgumentException e) { @@ -183,11 +175,6 @@ public class StepExecutionTests extends TestCase { assertFalse(stepExecution.equals(blankExecution)); } - public void testEqualsWithNullStep() throws Exception { - Entity stepExecution = newStepExecution(new StepSupport("stepName"), null); - assertFalse(stepExecution.equals(blankExecution)); - } - public void testEqualsWithSelf() throws Exception { assertTrue(execution.equals(execution)); }