From dc9d04e705e3ca52d54054bc7b6d28bd35dacfee Mon Sep 17 00:00:00 2001 From: dsyer Date: Fri, 9 Nov 2007 15:03:29 +0000 Subject: [PATCH] RESOLVED - issue BATCH-181: When trying to re-run a Job that already executed successfully the JobExecutorFacade returns ExitStatus.FAILED http://opensource.atlassian.com/projects/spring/browse/BATCH-181 --- .../execution/job/DefaultJobExecutor.java | 4 +-- .../batch/repeat/ExitStatus.java | 34 +++++++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/execution/src/main/java/org/springframework/batch/execution/job/DefaultJobExecutor.java b/execution/src/main/java/org/springframework/batch/execution/job/DefaultJobExecutor.java index 3a6a9271d..b0b799c3b 100644 --- a/execution/src/main/java/org/springframework/batch/execution/job/DefaultJobExecutor.java +++ b/execution/src/main/java/org/springframework/batch/execution/job/DefaultJobExecutor.java @@ -101,9 +101,9 @@ public class DefaultJobExecutor implements JobExecutor { if (startedCount==0) { if (stepConfigurations.size()>0) { - status = ExitStatus.FINISHED.addExitDescription("All steps already completed. No processing was done."); + status = ExitStatus.NOOP.addExitDescription("All steps already completed. No processing was done."); } else { - status = ExitStatus.FINISHED.addExitDescription("No steps configured for this job."); + status = ExitStatus.NOOP.addExitDescription("No steps configured for this job."); } } 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 b2cdfc6c4..3f8c7badd 100644 --- a/infrastructure/src/main/java/org/springframework/batch/repeat/ExitStatus.java +++ b/infrastructure/src/main/java/org/springframework/batch/repeat/ExitStatus.java @@ -33,20 +33,28 @@ public class ExitStatus implements Serializable { public static final ExitStatus RUNNING = new ExitStatus(true, "RUNNING"); /** - * Convenient constant value representing unknown state - assumed continuable. + * Convenient constant value representing unknown state - assumed + * continuable. */ public static final ExitStatus UNKNOWN = new ExitStatus(true, "UNKNOWN"); /** * Convenient constant value representing unfinished processing. */ - public static final ExitStatus CONTINUABLE = new ExitStatus(true, "CONTINUABLE"); + public static final ExitStatus CONTINUABLE = new ExitStatus(true, + "CONTINUABLE"); /** * Convenient constant value representing finished processing. */ public static final ExitStatus FINISHED = new ExitStatus(false, "COMPLETED"); + /** + * Convenient constant value representing job that did no processing (e.g. + * because it was already complete). + */ + public static final ExitStatus NOOP = new ExitStatus(false, "NOOP"); + /** * Convenient constant value representing finished processing with an error. */ @@ -114,7 +122,8 @@ public class ExitStatus implements Serializable { * logical and of the current value and the argument provided. */ public ExitStatus and(boolean continuable) { - return new ExitStatus(this.continuable && continuable, this.exitCode, this.exitDescription); + return new ExitStatus(this.continuable && continuable, this.exitCode, + this.exitDescription); } /* @@ -126,14 +135,14 @@ public class ExitStatus implements Serializable { return "continuable=" + continuable + ";exitCode=" + exitCode + ";exitDescription=" + exitDescription; } - + /** * Compare the fields one by one. * * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object obj) { - if (obj==null) { + if (obj == null) { return false; } return toString().equals(obj.toString()); @@ -151,8 +160,10 @@ public class ExitStatus implements Serializable { /** * Add an exit code to an existing {@link ExitStatus}. * - * @param code the code to add - * @return a new {@link ExitStatus} with the same properties but a new exit code. + * @param code + * the code to add + * @return a new {@link ExitStatus} with the same properties but a new exit + * code. */ public ExitStatus addExitCode(String code) { return new ExitStatus(continuable, code, exitDescription); @@ -164,14 +175,17 @@ public class ExitStatus implements Serializable { * @return tru eif the exit code is "RUNNING" or "UNKNOWN" */ public boolean isRunning() { - return "RUNNING".equals(this.exitCode) || "UNKNOWN".equals(this.exitCode); + return "RUNNING".equals(this.exitCode) + || "UNKNOWN".equals(this.exitCode); } /** * Add an exit description to an existing {@link ExitStatus}. * - * @param description the description to add - * @return a new {@link ExitStatus} with the same properties but a new exit description + * @param description + * the description to add + * @return a new {@link ExitStatus} with the same properties but a new exit + * description */ public ExitStatus addExitDescription(String description) { return new ExitStatus(continuable, exitCode, description);