IgniteFutureImpl implements IgniteFuture<V> { @Override public V get() { try { return fut.get(); } catch (IgniteCheckedException e) { throw convertException(e); } } IgniteFutureImpl(IgniteInternalFuture<V> fut); IgniteInternalFuture<V> internalFuture(); @Override boolean isCancelled(); @Override boolean isDone(); @Override void listen(IgniteInClosure<? super IgniteFuture<V>> lsnr); @Override void listenAsync(IgniteInClosure<? super IgniteFuture<V>> lsnr, Executor exec); @Override IgniteFuture<T> chain(final IgniteClosure<? super IgniteFuture<V>, T> doneCb); @Override IgniteFuture<T> chainAsync(final IgniteClosure<? super IgniteFuture<V>, T> doneCb,
        Executor exec); @Override boolean cancel(); @Override V get(); @Override V get(long timeout); @Override V get(long timeout, TimeUnit unit); @Override String toString();  }
@Test public void testFutureIgniteException() throws Exception { GridFutureAdapter<String> fut0 = new GridFutureAdapter<>(); final IgniteFutureImpl<String> fut = createFuture(fut0); IgniteException err0 = new IgniteException("test error"); fut0.onDone(err0); Exception err = (Exception)GridTestUtils.assertThrows(log, new Callable<Void>() { @Override public Void call() throws Exception { fut.get(); return null; } }, expectedException(), "test error"); assertExpectedException(err, err0); }