@Test
public void testExecutionException() throws Exception {

	final Exception exception = new Exception();
	FutureTask<Object> futureTask = new FutureTask<Object>(
		new Callable<Object>() {
			@Override
			public Object call() throws Exception {
				throw exception;
			}
		});
	futureTask.run();
	Future<Object> future = new NopFutureConverter(futureTask);
	try {
		future.get();
		Assert.fail();
	}
	catch (ExecutionException executionException) {
		Assert.assertSame(exception, executionException.getCause());
	}
	try {
		future.get(1, TimeUnit.SECONDS);
		Assert.fail();
	}
	catch (ExecutionException executionException) {
		Assert.assertSame(exception, executionException.getCause());
	}
}