corda/sgx-jvm/avian/test/FutureTaskTest.java

34 lines
915 B
Java
Raw Normal View History

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
import java.util.concurrent.RunnableFuture;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
public class FutureTaskTest {
private static final int DELAY_TIME = 10;
public static void main(String[] args) throws InterruptedException, ExecutionException {
isDoneTest(false);
isDoneTest(true);
}
private static void isDoneTest(final boolean throwException) {
RunnableFuture<?> future = new FutureTask<Object>(new Runnable() {
@Override
public void run() {
if (throwException) {
throw new RuntimeException();
}
}
}, null);
// should finish the future
future.run();
if (! future.isDone()) {
throw new RuntimeException("Future should be done");
}
}
}