RESOLVED - BATCH-838: TimeoutTerminationPolicy does not terminate when eof is encountered

terminate immediately if exit status is not continuable
This commit is contained in:
robokaso
2008-09-24 12:11:49 +00:00
parent c6da8322df
commit 15109ebdb8
3 changed files with 24 additions and 4 deletions

View File

@@ -30,13 +30,19 @@ import org.springframework.batch.repeat.context.RepeatContextSupport;
public class CompletionPolicySupport implements CompletionPolicy {
/**
* Delegate to {@link #isComplete(RepeatContext)}.
* If exit status is not continuable return <code>true</code>, otherwise
* delegate to {@link #isComplete(RepeatContext)}.
*
* @see org.springframework.batch.repeat.CompletionPolicy#isComplete(org.springframework.batch.repeat.RepeatContext,
* ExitStatus)
*/
public boolean isComplete(RepeatContext context, ExitStatus result) {
return isComplete(context);
if (result != null && !result.isContinuable()) {
return true;
}
else {
return isComplete(context);
}
}
/**

View File

@@ -64,6 +64,7 @@ public class TimeoutTerminationPolicy extends CompletionPolicySupport {
*
* @see org.springframework.batch.repeat.CompletionPolicy#isComplete(org.springframework.batch.repeat.RepeatContext)
*/
@Override
public boolean isComplete(RepeatContext context) {
return ((TimeoutBatchContext) context).isComplete();
}
@@ -73,6 +74,7 @@ public class TimeoutTerminationPolicy extends CompletionPolicySupport {
*
* @see org.springframework.batch.repeat.CompletionPolicy#start(RepeatContext)
*/
@Override
public RepeatContext start(RepeatContext context) {
return new TimeoutBatchContext(context);
}