@Override
    public HttpResponse get() throws InterruptedException, ExecutionException {
        try {
            final Object result = process(0, null);
            if (result instanceof Throwable) {
                throw new ExecutionException((Throwable) result);
            }
            return (HttpResponse) result;
        } finally {
            isDone = true;
        }
    }
@Test(expected = ExecutionException.class)
    public void errGetThrowable() throws ExecutionException, InterruptedException, TimeoutException {
        get(new Exception("wrong"), false);
    }