diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/tasklet/TaskletStep.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/tasklet/TaskletStep.java index 5c34ecaa4..ab9c9fa64 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/tasklet/TaskletStep.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/tasklet/TaskletStep.java @@ -248,7 +248,6 @@ public class TaskletStep extends AbstractStep { } - stepExecution.incrementCommitCount(); // If the step operations are asynchronous then we need // to synchronize changes to the step execution (at a @@ -266,24 +265,13 @@ public class TaskletStep extends AbstractStep { try { getJobRepository().updateExecutionContext(stepExecution); - } - catch (Exception e) { - throw new FatalException("Fatal error detected during save of step execution context", e); - } - - try { transactionManager.commit(transaction); - } - catch (Exception e) { - throw new FatalException("Fatal error detected during commit", e); - } - - try { + stepExecution.incrementCommitCount(); logger.debug("Saving step execution after commit: " + stepExecution); getJobRepository().update(stepExecution); } catch (Exception e) { - throw new FatalException("Fatal error detected during update of step execution", e); + throw new FatalException("Fatal failure detected", e); } } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/AsyncTaskletStepTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/AsyncTaskletStepTests.java index 4906188d2..739744a38 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/AsyncTaskletStepTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/AsyncTaskletStepTests.java @@ -107,9 +107,9 @@ public class AsyncTaskletStepTests { step.execute(stepExecution); - assertEquals(25, processed.size()); - assertEquals(25, stepExecution.getReadCount()); assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); + assertEquals(25, stepExecution.getReadCount()); + assertEquals(25, processed.size()); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/ChunkOrientedStepIntegrationTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/ChunkOrientedStepIntegrationTests.java index cce93a8d5..30fbddeaa 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/ChunkOrientedStepIntegrationTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/ChunkOrientedStepIntegrationTests.java @@ -142,7 +142,7 @@ public class ChunkOrientedStepIntegrationTests { // STARTED instead of UNKNOWN assertEquals(BatchStatus.UNKNOWN, lastStepExecution.getStatus()); String msg = stepExecution.getExitStatus().getExitDescription(); - assertTrue(msg.contains("Fatal error detected during commit")); + assertTrue(msg.contains("Fatal failure detected")); // The original rollback was caused by this one: assertEquals("Simulate commit failure", stepExecution.getFailureExceptions().get(0).getCause().getMessage()); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java index 15955c771..0fdbb6f07 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java @@ -319,7 +319,7 @@ public class TaskletStepTests { step.execute(stepExecution); Throwable e = stepExecution.getFailureExceptions().get(0); - assertEquals("Fatal error detected during save of step execution context", e.getMessage()); + assertEquals("Fatal failure detected", e.getMessage()); assertEquals("foo", e.getCause().getMessage()); assertEquals(BatchStatus.UNKNOWN, stepExecution.getStatus()); } @@ -643,10 +643,10 @@ public class TaskletStepTests { step.execute(stepExecution); assertEquals(BatchStatus.UNKNOWN, stepExecution.getStatus()); String msg = stepExecution.getExitStatus().getExitDescription(); - assertTrue(msg.contains("Fatal error detected during commit")); + assertTrue(msg.contains("Fatal failure detected")); Throwable ex = stepExecution.getFailureExceptions().get(0); msg = ex.getMessage(); - assertTrue(msg.contains("Fatal error detected during commit")); + assertTrue(msg.contains("Fatal failure detected")); // The original rollback was caused by this one: assertEquals("Bar", ex.getCause().getMessage()); }