private void connectFailed(Channel ch, ConnectionListener<HttpClientConnection> listener, Throwable t, Future<ConnectResult<HttpClientConnection>> future) { if (ch != null) { try { ch.close(); } catch (Exception ignore) { } } future.tryFail(t); } }
@Override public void handleException(Throwable t) { super.handleException(t); Handler<Throwable> handler; synchronized (this) { exceptionOccurred = t; if (exceptionHandler != null) { handler = exceptionHandler; } else { handler = log::error; } } handler.handle(t); respFut.tryFail(t); }
} catch (Throwable t) { log.warn("Failed to run close hooks", t); a.tryFail(t);
@Override public void connect(ConnectionListener<HttpClientConnection> listener, ContextInternal context, Handler<AsyncResult<ConnectResult<HttpClientConnection>>> handler) { Future<ConnectResult<HttpClientConnection>> future = Future.<ConnectResult<HttpClientConnection>>future().setHandler(handler); try { doConnect(listener, context, future); } catch(Exception e) { future.tryFail(e); } }
private void fail(Throwable cause) { inProgressMap.remove(msg.id()); if (timerID >= 0) { vertx.cancelTimer(timerID); } fut.tryFail(cause); }
fut.complete(); } catch (IOException e) { fut.tryFail(e);
fileChannel.pipeline().fireUserEventTriggered(raf); } else { result.tryFail(future.cause());
void handleException(Throwable cause) { HttpClientRequestImpl request; HttpClientResponseImpl response; Future<HttpClientStream> fut; boolean requestEnded; synchronized (conn) { request = this.request; response = this.response; fut = this.fut; requestEnded = this.requestEnded; } if (request != null) { if (response == null) { request.handleException(cause); } else { if (!requestEnded) { request.handleException(cause); } response.handleException(cause); } } else { fut.tryFail(cause); } } }
void fail(Throwable err) { context.nettyEventLoop().execute(() -> future.tryFail(err)); } }
fileChannel.pipeline().fireUserEventTriggered(raf); } else { result.tryFail(future.cause());
@Test public void testSetResultOnCompletedFuture() { ArrayList<Future<Object>> futures = new ArrayList<>(); futures.add(Future.succeededFuture()); futures.add(Future.succeededFuture()); futures.add(Future.succeededFuture(new Object())); futures.add(Future.succeededFuture(new Object())); futures.add(Future.failedFuture(new Exception())); futures.add(Future.failedFuture(new Exception())); for (Future<Object> future : futures) { try { future.complete(new Object()); fail(); } catch (IllegalStateException ignore) { } assertFalse(future.tryComplete(new Object())); try { future.complete(null); fail(); } catch (IllegalStateException ignore) { } assertFalse(future.tryComplete(null)); try { future.fail(new Exception()); fail(); } catch (IllegalStateException ignore) { } assertFalse(future.tryFail(new Exception())); } }
blockingCodeHandler.handle(res); } catch (Throwable e) { res.tryFail(e); } finally { if (!DISABLE_TIMINGS) {
@Override public void handle(Throwable cause) { fut.tryFail(cause); }
@Override public boolean tryFail(String failureMessage) { return future.tryFail(failureMessage); }
@Override public boolean tryFail(Throwable cause) { return future.tryFail(cause); }
private void connectFailed(Channel ch, ConnectionListener<HttpClientConnection> listener, Throwable t, Future<ConnectResult<HttpClientConnection>> future) { if (ch != null) { try { ch.close(); } catch (Exception ignore) { } } future.tryFail(t); } }
@Override public void connect(ConnectionListener<HttpClientConnection> listener, ContextInternal context, Handler<AsyncResult<ConnectResult<HttpClientConnection>>> handler) { Future<ConnectResult<HttpClientConnection>> future = Future.<ConnectResult<HttpClientConnection>>future().setHandler(handler); try { doConnect(listener, context, future); } catch(Exception e) { future.tryFail(e); } }
private void fail(Throwable cause) { inProgressMap.remove(msg.id()); if (timerID >= 0) { vertx.cancelTimer(timerID); } fut.tryFail(cause); }
@Override public void end() { if (stream instanceof AsyncFile) { AsyncFile file = (AsyncFile) stream; file.close(ar -> { if (ar.succeeded()) { fut.tryComplete(); } else { fut.tryFail(ar.cause()); } }); } else { stream.end(); fut.tryComplete(); } }
void fail(Throwable err) { context.nettyEventLoop().execute(() -> future.tryFail(err)); } }