RESOLVED - BATCH-962: refactor TaskletStep's exception handling for better clarity
collapsed repeating try-catch-rethrow blocks into one
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user