diff --git a/infrastructure/src/main/java/org/springframework/batch/repeat/ExitStatus.java b/infrastructure/src/main/java/org/springframework/batch/repeat/ExitStatus.java index c30f89511..5aa312ba4 100644 --- a/infrastructure/src/main/java/org/springframework/batch/repeat/ExitStatus.java +++ b/infrastructure/src/main/java/org/springframework/batch/repeat/ExitStatus.java @@ -149,4 +149,13 @@ public class ExitStatus implements Serializable { return new ExitStatus(continuable, code, exitDescription); } + /** + * Check if this status represents a running process. + * + * @return tru eif the exit code is "RUNNING" or "UNKNOWN" + */ + public boolean isRunning() { + return "RUNNING".equals(this.exitCode) || "UNKNOWN".equals(this.exitCode); + } + } diff --git a/infrastructure/src/test/java/org/springframework/batch/repeat/ExitStatusTests.java b/infrastructure/src/test/java/org/springframework/batch/repeat/ExitStatusTests.java index d2819db50..127e73925 100644 --- a/infrastructure/src/test/java/org/springframework/batch/repeat/ExitStatusTests.java +++ b/infrastructure/src/test/java/org/springframework/batch/repeat/ExitStatusTests.java @@ -104,6 +104,15 @@ public class ExitStatusTests extends TestCase { assertEquals("Bar", status.getExitDescription()); } + public void testRunningIsRunning() throws Exception { + assertTrue(ExitStatus.RUNNING.isRunning()); + assertTrue(new ExitStatus(true, "RUNNING").isRunning()); + } + + public void testUnkownIsRunning() throws Exception { + assertTrue(ExitStatus.UNKNOWN.isRunning()); + } + public void testSerializable() throws Exception { ExitStatus status = ExitStatus.CONTINUABLE.addExitCode("FOO"); byte[] bytes = SerializationUtils.serialize(status);