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:
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user