/**
* Schedule two tasks. The first task throws an exception. Verify that
* the second task is run.
*/
public void run() throws Exception {
TaskManager manager = new TaskManager();
long badTaskTime = System.currentTimeMillis() + (10*1000);
long goodTaskTime = badTaskTime + (10*1000);
ArrayList taskList = new ArrayList();
taskList.add(0, new Task() {
public boolean runAfter(List tasks, int size){
return false;
}
public void run() {
throw new RuntimeException("Expected Exception");
}
});
final boolean result[] = new boolean[]{false};
taskList.add(1, new Task() {
public boolean runAfter(List tasks, int size){
return (tasks.size()>1);
}
public void run() {
result[0] = true;
}
});
manager.addAll(taskList);
Thread.sleep(10 * 1000);
if (!result[0]) {
throw new TestException("A task that throws a runtime exception"
+ " prevents other tasks from running");
}