RESOLVED - issue BATCH-177: CountingCompletionPolicy causes the Step to go into infinite loop

http://opensource.atlassian.com/projects/spring/browse/BATCH-177

Use different base class for CountingCompletionPolicy
This commit is contained in:
dsyer
2007-10-23 13:33:33 +00:00
parent dcdeeb7b6f
commit d182b36846
2 changed files with 24 additions and 1 deletions

View File

@@ -30,7 +30,7 @@ import org.springframework.batch.repeat.context.RepeatContextSupport;
* @author Dave Syer
*
*/
public abstract class CountingCompletionPolicy extends CompletionPolicySupport {
public abstract class CountingCompletionPolicy extends DefaultResultCompletionPolicy {
/**
* Session key for global counter.

View File

@@ -18,6 +18,7 @@ package org.springframework.batch.repeat.policy;
import junit.framework.TestCase;
import org.springframework.batch.repeat.ExitStatus;
import org.springframework.batch.repeat.RepeatContext;
import org.springframework.batch.repeat.context.RepeatContextSupport;
@@ -33,6 +34,28 @@ public class CountingCompletionPolicyTests extends TestCase {
assertTrue(policy.isComplete(context));
}
public void testNullResult() throws Exception {
CountingCompletionPolicy policy = new CountingCompletionPolicy() {
protected int getCount(RepeatContext context) {
return 1;
};
};
policy.setMaxCount(10);
RepeatContext context = policy.start(null);
assertTrue(policy.isComplete(context, null));
}
public void testFinishedResult() throws Exception {
CountingCompletionPolicy policy = new CountingCompletionPolicy() {
protected int getCount(RepeatContext context) {
return 1;
};
};
policy.setMaxCount(10);
RepeatContext context = policy.start(null);
assertTrue(policy.isComplete(context, ExitStatus.FINISHED));
}
public void testDefaultBehaviourWithUpdate() throws Exception {
CountingCompletionPolicy policy = new CountingCompletionPolicy() {
int count = 0;