@Override public boolean isCancelled() { return delegate.isCancelled(); }
private static CompletableFuture<Void> toCompletableFuture(Future<?> future) { CompletableFuture<Void> promise = new CompletableFuture<>(); if (future.isDone() || future.isCancelled()) { if (future.isSuccess()) { promise.complete(null); } else { promise.completeExceptionally(future.cause()); } return promise; } future.addListener(f -> { if (f.isSuccess()) { promise.complete(null); } else { promise.completeExceptionally(f.cause()); } }); return promise; } }
@Override public void operationComplete(Future<T> future) throws Exception { if (future.isCancelled()) { synchronized (responses) { ResponseEntry entry = responses.get(responseQueueName); List<Result> list = entry.getResponses().get(requestId); if (list == null) { return; } for (Iterator<Result> iterator = list.iterator(); iterator.hasNext();) { Result result = iterator.next(); if (result.getPromise() == responseFuture) { result.getScheduledFuture().cancel(true); iterator.remove(); } } if (list.isEmpty()) { entry.getResponses().remove(requestId); } if (entry.getResponses().isEmpty()) { responses.remove(responseQueueName, entry); } } } } });
@Override public void operationComplete(Future<T> future) throws Exception { if (future.isCancelled()) { synchronized (responses) { ResponseEntry entry = responses.get(responseQueueName); List<Result> list = entry.getResponses().get(requestId); if (list == null) { return; } for (Iterator<Result> iterator = list.iterator(); iterator.hasNext();) { Result result = iterator.next(); if (result.getPromise() == responseFuture) { result.getScheduledFuture().cancel(true); iterator.remove(); } } if (list.isEmpty()) { entry.getResponses().remove(requestId); } if (entry.getResponses().isEmpty()) { responses.remove(responseQueueName, entry); } } } } });
@Override public void operationComplete(F future) throws Exception { InternalLogger internalLogger = logNotifyFailure ? logger : null; if (future.isSuccess()) { V result = future.get(); for (Promise<? super V> p: promises) { PromiseNotificationUtil.trySuccess(p, result, internalLogger); } } else if (future.isCancelled()) { for (Promise<? super V> p: promises) { PromiseNotificationUtil.tryCancel(p, internalLogger); } } else { Throwable cause = future.cause(); for (Promise<? super V> p: promises) { PromiseNotificationUtil.tryFailure(p, cause, internalLogger); } } } }
@Override public void operationComplete(F future) throws Exception { InternalLogger internalLogger = logNotifyFailure ? logger : null; if (future.isSuccess()) { V result = future.get(); for (Promise<? super V> p: promises) { PromiseNotificationUtil.trySuccess(p, result, internalLogger); } } else if (future.isCancelled()) { for (Promise<? super V> p: promises) { PromiseNotificationUtil.tryCancel(p, internalLogger); } } else { Throwable cause = future.cause(); for (Promise<? super V> p: promises) { PromiseNotificationUtil.tryFailure(p, cause, internalLogger); } } } }
public static <X> void cascadeTo(Future<X> completedFuture, Promise<? super X> promise) { if (completedFuture.isSuccess()) { if (!promise.trySuccess(completedFuture.getNow())) { logger.warn("Failed to mark a promise as success because it is done already: {}", promise); } } else if (completedFuture.isCancelled()) { if (!promise.cancel(false)) { logger.warn("Failed to cancel a promise because it is done already: {}", promise); } } else { if (!promise.tryFailure(completedFuture.cause())) { logger.warn("Failed to mark a promise as failure because it's done already: {}", promise, completedFuture.cause()); } } } }
@Override public void operationComplete(Future<Void> future) throws Exception { if (future.isCancelled() && connectionFuture.cancel(false)) { log.debug("Connection obtaining canceled for batch"); details.getTimeout().cancel(); if (attemptPromise.cancel(false)) { free(entry); } } } };
@Override public void operationComplete(Future<Void> future) throws Exception { if (future.isCancelled() && connectionFuture.cancel(false)) { log.debug("Connection obtaining canceled for batch"); details.getTimeout().cancel(); if (attemptPromise.cancel(false)) { free(entry); } } } };
@Override public void operationComplete(Future<R> future) throws Exception { if (future.isCancelled() && connectionFuture.cancel(false)) { log.debug("Connection obtaining canceled for {}", command); details.getTimeout().cancel(); if (details.getAttemptPromise().cancel(false)) { free(params); } } } };
@Override public void operationComplete(Future<R> future) throws Exception { if (future.isCancelled() && connectionFuture.cancel(false)) { log.debug("Connection obtaining canceled for {}", command); details.getTimeout().cancel(); if (details.getAttemptPromise().cancel(false)) { free(params); } } } };
public static <X> void cascadeTo(Future<X> completedFuture, Promise<? super X> promise) { if (completedFuture.isSuccess()) { if (!promise.trySuccess(completedFuture.getNow())) { logger.warn("Failed to mark a promise as success because it is done already: {}", promise); } } else if (completedFuture.isCancelled()) { if (!promise.cancel(false)) { logger.warn("Failed to cancel a promise because it is done already: {}", promise); } } else { if (!promise.tryFailure(completedFuture.cause())) { logger.warn("Failed to mark a promise as failure because it's done already: {}", promise, completedFuture.cause()); } } } }
queriesInProgress.remove(future); if (promise.isDone() || future.isCancelled()) { queryLifecycleObserver.queryCancelled(allowedQueries);
public static <X> void cascadeTo(Future<X> completedFuture, Promise<? super X> promise) { if (completedFuture.isSuccess()) { if (!promise.trySuccess(completedFuture.getNow())) { logger.warn("Failed to mark a promise as success because it is done already: {}", promise); } } else if (completedFuture.isCancelled()) { if (!promise.cancel(false)) { logger.warn("Failed to cancel a promise because it is done already: {}", promise); } } else { if (!promise.tryFailure(completedFuture.cause())) { logger.warn("Failed to mark a promise as failure because it's done already: {}", promise, completedFuture.cause()); } } } }
@Override public void operationComplete(Future<R> future) throws Exception { if (scheduledFuture != null) { scheduledFuture.cancel(); } synchronized (listener) { connectionManager.getShutdownPromise().removeListener(listener); } // handling cancel operation for blocking commands if (future.isCancelled() && !details.getAttemptPromise().isDone()) { log.debug("Canceled blocking operation {} used {}", details.getCommand(), connection); connection.forceFastReconnectAsync().addListener(new FutureListener<Void>() { @Override public void operationComplete(Future<Void> future) throws Exception { details.getAttemptPromise().cancel(true); } }); return; } if (future.cause() instanceof RedissonShutdownException) { details.getAttemptPromise().tryFailure(future.cause()); } } });
@Override public void operationComplete(Future<R> future) throws Exception { if (scheduledFuture != null) { scheduledFuture.cancel(); } synchronized (listener) { connectionManager.getShutdownPromise().removeListener(listener); } // handling cancel operation for blocking commands if (future.isCancelled() && !details.getAttemptPromise().isDone()) { log.debug("Canceled blocking operation {} used {}", details.getCommand(), connection); connection.forceFastReconnectAsync().addListener(new FutureListener<Void>() { @Override public void operationComplete(Future<Void> future) throws Exception { details.getAttemptPromise().cancel(true); } }); return; } if (future.cause() instanceof RedissonShutdownException) { details.getAttemptPromise().tryFailure(future.cause()); } } });
@Override public void operationComplete(Future<Void> future) throws Exception { details.getTimeout().cancel(); if (future.isCancelled()) { return;
@Override public void operationComplete(Future<Void> future) throws Exception { details.getTimeout().cancel(); if (future.isCancelled()) { return;
@Override public void operationComplete(Future<RedisConnection> connFuture) throws Exception { if (connFuture.isCancelled()) { connectionManager.getShutdownLatch().release(); return; } if (!connFuture.isSuccess()) { connectionManager.getShutdownLatch().release(); details.setException(convertException(connectionFuture)); return; } if (details.getAttemptPromise().isDone() || details.getMainPromise().isDone()) { releaseConnection(source, connectionFuture, details.isReadOnlyMode(), details.getAttemptPromise(), details); return; } final RedisConnection connection = connFuture.getNow(); sendCommand(details, connection); details.getWriteFuture().addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { checkWriteFuture(details, ignoreRedirect, connection); } }); releaseConnection(source, connectionFuture, details.isReadOnlyMode(), details.getAttemptPromise(), details); } });
@Override public void operationComplete(Future<RedisConnection> connFuture) throws Exception { if (connFuture.isCancelled()) { connectionManager.getShutdownLatch().release(); return; } if (!connFuture.isSuccess()) { connectionManager.getShutdownLatch().release(); details.setException(convertException(connectionFuture)); return; } if (details.getAttemptPromise().isDone() || details.getMainPromise().isDone()) { releaseConnection(source, connectionFuture, details.isReadOnlyMode(), details.getAttemptPromise(), details); return; } final RedisConnection connection = connFuture.getNow(); sendCommand(details, connection); details.getWriteFuture().addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { checkWriteFuture(details, ignoreRedirect, connection); } }); releaseConnection(source, connectionFuture, details.isReadOnlyMode(), details.getAttemptPromise(), details); } });