use of com.serotonin.timer.SystemTimeSource in project ma-core-public by infiniteautomation.
the class OrderedThreadPoolExecutorTest method testFailedExecutions.
@Test
public void testFailedExecutions() throws InterruptedException {
boolean flushOnReject = false;
OrderedThreadPoolExecutor exe = new OrderedThreadPoolExecutor(0, 3, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new MangoThreadFactory("medium", Thread.MAX_PRIORITY - 2), new RejectedExecutionHandler() {
@Override
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
System.out.println("Rejected.");
}
}, flushOnReject, new SystemTimeSource());
// Starup a new thread that inserts failing tasks
new Thread() {
public void run() {
long time = 10000;
for (int i = 0; i < 10; i++) {
Task task = new Task("Failure", "TSK_FAIL", -1) {
@Override
public void run(long runtime) {
try {
Thread.sleep(20);
} catch (InterruptedException e) {
}
throw new RuntimeException("oops");
}
@Override
public void rejected(RejectedTaskReason reason) {
System.out.println("Task Rejected");
}
};
exe.execute(new TaskWrapper(task, time));
time += 100;
}
}
}.start();
Thread.sleep(1000);
if (exe.queueExists("TSK_FAIL"))
fail("non empty queue");
}
Aggregations