Search in sources :

Example 1 with SuspectException

use of org.infinispan.remoting.transport.jgroups.SuspectException in project infinispan by infinispan.

the class ScatteredStateConsumerImpl method handleSegments.

@Override
protected CompletionStage<Void> handleSegments(boolean isRebalance, IntSet addedSegments, IntSet removedSegments, IntSet transactionOnlySegments) {
    if (!isRebalance) {
        log.trace("This is not a rebalance, not doing anything...");
        return CompletableFutures.completedNull();
    }
    if (addedSegments.isEmpty()) {
        log.trace("No segments missing");
        return CompletableFutures.completedNull();
    }
    synchronized (transferMapsLock) {
        inboundSegments = IntSets.mutableFrom(addedSegments);
    }
    chunkCounter.set(0);
    if (log.isTraceEnabled())
        log.tracef("Revoking all segments, chunk counter reset to 0");
    CacheRpcCommand command = commandsFactory.buildScatteredStateConfirmRevokeCommand(cacheTopology.getTopologyId(), addedSegments);
    // we need to wait synchronously for the completion
    return rpcManager.invokeCommandOnAll(command, MapResponseCollector.ignoreLeavers(), rpcManager.getSyncRpcOptions()).handle((responses, throwable) -> {
        if (throwable == null) {
            try {
                svm.startKeyTransfer(addedSegments);
                requestKeyTransfer(addedSegments);
            } catch (SuspectException e) {
                log.tracef("Key transfer source %s was suspected, another source will be selected", e.getSuspect());
            } catch (Throwable t) {
                log.failedToRequestSegments(cacheName, null, addedSegments, t);
            }
        } else {
            if (cache.wired().getStatus() == ComponentStatus.RUNNING) {
                log.failedConfirmingRevokedSegments(throwable);
            } else {
                // reduce verbosity for stopping cache
                log.debug("Failed confirming revoked segments", throwable);
            }
            for (int segment : addedSegments) {
                svm.notifyKeyTransferFinished(segment, false, false);
            }
            notifyEndOfStateTransferIfNeeded();
        }
        return null;
    });
}
Also used : CacheRpcCommand(org.infinispan.commands.remote.CacheRpcCommand) SuspectException(org.infinispan.remoting.transport.jgroups.SuspectException)

Example 2 with SuspectException

use of org.infinispan.remoting.transport.jgroups.SuspectException in project infinispan by infinispan.

the class SingleClusterExecutor method submit.

@Override
public CompletableFuture<Void> submit(Runnable runnable) {
    Address target = findTarget();
    if (target == null) {
        return CompletableFutures.completedExceptionFuture(new SuspectException("No available nodes!"));
    }
    if (log.isTraceEnabled()) {
        log.tracef("Submitting runnable to single remote node - JGroups Address %s", target);
    }
    CompletableFuture<Void> future = new CompletableFuture<>();
    if (target == me) {
        return super.submit(runnable);
    } else {
        ReplicableCommand command = new ReplicableRunnableCommand(runnable);
        CompletionStage<Response> request = transport.invokeCommand(target, command, PassthroughSingleResponseCollector.INSTANCE, DeliverOrder.NONE, time, unit);
        request.whenComplete((r, t) -> {
            if (t != null) {
                future.completeExceptionally(t);
            } else {
                consumeResponse(r, target, future::completeExceptionally);
                future.complete(null);
            }
        });
    }
    return future;
}
Also used : Response(org.infinispan.remoting.responses.Response) CompletableFuture(java.util.concurrent.CompletableFuture) Address(org.infinispan.remoting.transport.Address) ReplicableCommand(org.infinispan.commands.ReplicableCommand) SuspectException(org.infinispan.remoting.transport.jgroups.SuspectException)

Example 3 with SuspectException

use of org.infinispan.remoting.transport.jgroups.SuspectException in project infinispan by infinispan.

the class BaseStateTransferInterceptor method handleExceptionOnReadCommandReturn.

private Object handleExceptionOnReadCommandReturn(InvocationContext rCtx, VisitableCommand rCommand, Throwable t) throws Throwable {
    Throwable ce = t;
    while (ce instanceof RemoteException) {
        ce = ce.getCause();
    }
    TopologyAffectedCommand cmd = (TopologyAffectedCommand) rCommand;
    final CacheTopology cacheTopology = distributionManager.getCacheTopology();
    int currentTopologyId = cacheTopology.getTopologyId();
    int requestedTopologyId;
    if (ce instanceof SuspectException) {
        // Read commands must ignore CacheNotFoundResponses
        throw new IllegalStateException("Read commands must ignore leavers");
    } else if (ce instanceof OutdatedTopologyException) {
        logRetry(currentTopologyId, cmd);
        // We can get OTE for dist reads even if current topology information is sufficient:
        // 1. A has topology in phase READ_ALL_WRITE_ALL, sends message to both old owner B and new C
        // 2. C has old topology with READ_OLD_WRITE_ALL, so it responds with UnsureResponse
        // 3. C updates topology to READ_ALL_WRITE_ALL, B updates to READ_NEW_WRITE_ALL
        // 4. B receives the read, but it already can't read: responds with UnsureResponse
        // 5. A receives two unsure responses and throws OTE
        // However, now we are sure that we can immediately retry the request, because C must have updated its topology
        OutdatedTopologyException ote = (OutdatedTopologyException) ce;
        requestedTopologyId = cmd.getTopologyId() + ote.topologyIdDelta;
    } else if (ce instanceof AllOwnersLostException) {
        if (getLog().isTraceEnabled())
            getLog().tracef("All owners for command %s have been lost.", cmd);
        // In scattered cache it might be common to lose the single owner, we need to retry. We will find out that
        // we can return null only after the next topology is installed. If partition handling is enabled we decide
        // only based on the availability status.
        // In other cache modes, during partition the exception is already handled in PartitionHandlingInterceptor,
        // and if the handling is not enabled, we can't but return null.
        requestedTopologyId = cmd.getTopologyId() + 1;
    } else {
        throw t;
    }
    // Only retry once if currentTopologyId > cmdTopologyId + 1
    int retryTopologyId = Math.max(currentTopologyId, requestedTopologyId);
    cmd.setTopologyId(retryTopologyId);
    ((FlagAffectedCommand) cmd).addFlags(FlagBitSets.COMMAND_RETRY);
    if (retryTopologyId == currentTopologyId) {
        return invokeNextAndHandle(rCtx, rCommand, handleReadCommandReturn);
    } else {
        return makeStage(asyncInvokeNext(rCtx, rCommand, stateTransferLock.transactionDataFuture(retryTopologyId))).andHandle(rCtx, rCommand, handleReadCommandReturn);
    }
}
Also used : FlagAffectedCommand(org.infinispan.commands.FlagAffectedCommand) AllOwnersLostException(org.infinispan.statetransfer.AllOwnersLostException) CacheTopology(org.infinispan.topology.CacheTopology) TopologyAffectedCommand(org.infinispan.commands.TopologyAffectedCommand) OutdatedTopologyException(org.infinispan.statetransfer.OutdatedTopologyException) RemoteException(org.infinispan.remoting.RemoteException) SuspectException(org.infinispan.remoting.transport.jgroups.SuspectException)

Example 4 with SuspectException

use of org.infinispan.remoting.transport.jgroups.SuspectException in project infinispan by infinispan.

the class CacheNotifierImpl method registerClusterListeners.

private <C> CompletionStage<Void> registerClusterListeners(List<Address> members, UUID generatedId, Address ourAddress, CacheEventFilter<? super K, ? super V> filter, CacheEventConverter<? super K, ? super V, C> converter, Listener l, Object listener, DataConversion keyDataConversion, DataConversion valueDataConversion, boolean useStorageFormat) {
    if (log.isTraceEnabled()) {
        log.tracef("Replicating cluster listener to other nodes %s for cluster listener with id %s", members, generatedId);
    }
    ClusterListenerReplicateCallable<K, V> callable = new ClusterListenerReplicateCallable(cache.wired().getName(), generatedId, ourAddress, filter, converter, l.sync(), findListenerCallbacks(listener), keyDataConversion, valueDataConversion, useStorageFormat);
    TriConsumer<Address, Void, Throwable> handleSuspect = (a, ignore, t) -> {
        if (t != null && !(t instanceof SuspectException)) {
            log.debugf(t, "Address: %s encountered an exception while adding cluster listener", a);
            throw new CacheListenerException(t);
        }
    };
    // Send to all nodes but ours
    CompletionStage<Void> completionStage = clusterExecutor.filterTargets(a -> !ourAddress.equals(a)).submitConsumer(callable, handleSuspect);
    // the listener - unfortunately if there are no nodes it throws a SuspectException, so we ignore that
    return completionStage.thenCompose(v -> clusterExecutor.filterTargets(a -> !members.contains(a) && !a.equals(ourAddress)).submitConsumer(callable, handleSuspect).exceptionally(t -> {
        // Ignore any suspect exception
        if (!(t instanceof SuspectException)) {
            throw new CacheListenerException(t);
        }
        return null;
    }));
}
Also used : WriteCommand(org.infinispan.commands.write.WriteCommand) LogFactory(org.infinispan.util.logging.LogFactory) CacheListenerException(org.infinispan.commons.CacheListenerException) Wrapper(org.infinispan.commons.dataconversion.Wrapper) PartitionStatusChanged(org.infinispan.notifications.cachelistener.annotation.PartitionStatusChanged) GlobalConfiguration(org.infinispan.configuration.global.GlobalConfiguration) PersistenceAvailabilityChanged(org.infinispan.notifications.cachelistener.annotation.PersistenceAvailabilityChanged) Scopes(org.infinispan.factories.scopes.Scopes) BasicComponentRegistry(org.infinispan.factories.impl.BasicComponentRegistry) CONTAINER(org.infinispan.util.logging.Log.CONTAINER) AdvancedCache(org.infinispan.AdvancedCache) CACHE_ENTRY_INVALIDATED(org.infinispan.notifications.cachelistener.event.Event.Type.CACHE_ENTRY_INVALIDATED) TxInvocationContext(org.infinispan.context.impl.TxInvocationContext) CacheEventFilterAsKeyValueFilter(org.infinispan.notifications.cachelistener.filter.CacheEventFilterAsKeyValueFilter) Map(java.util.Map) Transaction(javax.transaction.Transaction) Listener(org.infinispan.notifications.Listener) ClusterEventManager(org.infinispan.notifications.cachelistener.cluster.ClusterEventManager) ConsistentHash(org.infinispan.distribution.ch.ConsistentHash) CacheEntryPassivatedEvent(org.infinispan.notifications.cachelistener.event.CacheEntryPassivatedEvent) Set(java.util.Set) TransactionCompletedEvent(org.infinispan.notifications.cachelistener.event.TransactionCompletedEvent) CacheTopology(org.infinispan.topology.CacheTopology) CACHE_ENTRY_PASSIVATED(org.infinispan.notifications.cachelistener.event.Event.Type.CACHE_ENTRY_PASSIVATED) CacheEntryLoadedEvent(org.infinispan.notifications.cachelistener.event.CacheEntryLoadedEvent) CACHE_ENTRY_MODIFIED(org.infinispan.notifications.cachelistener.event.Event.Type.CACHE_ENTRY_MODIFIED) CacheEntryCreated(org.infinispan.notifications.cachelistener.annotation.CacheEntryCreated) CacheEventFilterConverter(org.infinispan.notifications.cachelistener.filter.CacheEventFilterConverter) CacheIntermediatePublisher(org.infinispan.stream.impl.CacheIntermediatePublisher) CompletionStage(java.util.concurrent.CompletionStage) TRANSACTION_REGISTERED(org.infinispan.notifications.cachelistener.event.Event.Type.TRANSACTION_REGISTERED) DataConversion(org.infinispan.encoding.DataConversion) AsyncInterceptorChain(org.infinispan.interceptors.AsyncInterceptorChain) AvailabilityMode(org.infinispan.partitionhandling.AvailabilityMode) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) CacheEntryRemoved(org.infinispan.notifications.cachelistener.annotation.CacheEntryRemoved) TopologyChanged(org.infinispan.notifications.cachelistener.annotation.TopologyChanged) CacheEventFilterConverterAsKeyValueFilterConverter(org.infinispan.notifications.cachelistener.filter.CacheEventFilterConverterAsKeyValueFilterConverter) CacheEntryPassivated(org.infinispan.notifications.cachelistener.annotation.CacheEntryPassivated) CacheEntryInvalidated(org.infinispan.notifications.cachelistener.annotation.CacheEntryInvalidated) CacheEntriesEvictedEvent(org.infinispan.notifications.cachelistener.event.CacheEntriesEvictedEvent) CacheEntryVisitedEvent(org.infinispan.notifications.cachelistener.event.CacheEntryVisitedEvent) CACHE_ENTRY_EXPIRED(org.infinispan.notifications.cachelistener.event.Event.Type.CACHE_ENTRY_EXPIRED) PersistenceAvailabilityChangedEvent(org.infinispan.notifications.cachelistener.event.PersistenceAvailabilityChangedEvent) AbstractListenerImpl(org.infinispan.notifications.impl.AbstractListenerImpl) SegmentPublisherSupplier(org.infinispan.reactive.publisher.impl.SegmentPublisherSupplier) EnumUtil(org.infinispan.commons.util.EnumUtil) ArrayList(java.util.ArrayList) Start(org.infinispan.factories.annotations.Start) PARTITION_STATUS_CHANGED(org.infinispan.notifications.cachelistener.event.Event.Type.PARTITION_STATUS_CHANGED) CacheFilters(org.infinispan.filter.CacheFilters) CACHE_ENTRY_REMOVED(org.infinispan.notifications.cachelistener.event.Event.Type.CACHE_ENTRY_REMOVED) EventType(org.infinispan.notifications.cachelistener.filter.EventType) ClusterExecutor(org.infinispan.manager.ClusterExecutor) TransactionCompleted(org.infinispan.notifications.cachelistener.annotation.TransactionCompleted) PublisherTransformers(org.infinispan.reactive.publisher.PublisherTransformers) Address(org.infinispan.remoting.transport.Address) Transcoder(org.infinispan.commons.dataconversion.Transcoder) CACHE_ENTRY_CREATED(org.infinispan.notifications.cachelistener.event.Event.Type.CACHE_ENTRY_CREATED) InternalEntryFactory(org.infinispan.container.impl.InternalEntryFactory) CacheEntry(org.infinispan.container.entries.CacheEntry) CacheEventFilter(org.infinispan.notifications.cachelistener.filter.CacheEventFilter) ClusterListenerReplicateCallable(org.infinispan.notifications.cachelistener.cluster.ClusterListenerReplicateCallable) TOPOLOGY_CHANGED(org.infinispan.notifications.cachelistener.event.Event.Type.TOPOLOGY_CHANGED) Inject(org.infinispan.factories.annotations.Inject) PERSISTENCE_AVAILABILITY_CHANGED(org.infinispan.notifications.cachelistener.event.Event.Type.PERSISTENCE_AVAILABILITY_CHANGED) CacheEntryInvalidatedEvent(org.infinispan.notifications.cachelistener.event.CacheEntryInvalidatedEvent) ClusterEvent(org.infinispan.notifications.cachelistener.cluster.ClusterEvent) CacheEntryEvent(org.infinispan.notifications.cachelistener.event.CacheEntryEvent) CacheEventConverterAsConverter(org.infinispan.notifications.cachelistener.filter.CacheEventConverterAsConverter) GlobalTransaction(org.infinispan.transaction.xa.GlobalTransaction) Event(org.infinispan.notifications.cachelistener.event.Event) CACHE_ENTRY_LOADED(org.infinispan.notifications.cachelistener.event.Event.Type.CACHE_ENTRY_LOADED) DataRehashedEvent(org.infinispan.notifications.cachelistener.event.DataRehashedEvent) SuspectException(org.infinispan.remoting.transport.jgroups.SuspectException) AggregateCompletionStage(org.infinispan.util.concurrent.AggregateCompletionStage) TransactionRegisteredEvent(org.infinispan.notifications.cachelistener.event.TransactionRegisteredEvent) ClusterListenerRemoveCallable(org.infinispan.notifications.cachelistener.cluster.ClusterListenerRemoveCallable) MapOperation(org.infinispan.stream.impl.intops.object.MapOperation) CACHE_ENTRY_EVICTED(org.infinispan.notifications.cachelistener.event.Event.Type.CACHE_ENTRY_EVICTED) CacheEntryModifiedEvent(org.infinispan.notifications.cachelistener.event.CacheEntryModifiedEvent) IndexedFilter(org.infinispan.notifications.cachelistener.filter.IndexedFilter) InvocationContext(org.infinispan.context.InvocationContext) ComponentRef(org.infinispan.factories.impl.ComponentRef) CompletableFutures(org.infinispan.util.concurrent.CompletableFutures) CacheEntryRemovedEvent(org.infinispan.notifications.cachelistener.event.CacheEntryRemovedEvent) DeliveryGuarantee(org.infinispan.reactive.publisher.impl.DeliveryGuarantee) FilterOperation(org.infinispan.stream.impl.intops.object.FilterOperation) Scope(org.infinispan.factories.scopes.Scope) TriConsumer(org.infinispan.util.function.TriConsumer) CACHE_ENTRY_VISITED(org.infinispan.notifications.cachelistener.event.Event.Type.CACHE_ENTRY_VISITED) Collection(java.util.Collection) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) CacheEventConverter(org.infinispan.notifications.cachelistener.filter.CacheEventConverter) UUID(java.util.UUID) CacheEntryExpired(org.infinispan.notifications.cachelistener.annotation.CacheEntryExpired) Objects(java.util.Objects) List(java.util.List) TRANSACTION_COMPLETED(org.infinispan.notifications.cachelistener.event.Event.Type.TRANSACTION_COMPLETED) ClusterPublisherManager(org.infinispan.reactive.publisher.impl.ClusterPublisherManager) Annotation(java.lang.annotation.Annotation) TransactionRegistered(org.infinispan.notifications.cachelistener.annotation.TransactionRegistered) FilterIndexingServiceProvider(org.infinispan.notifications.cachelistener.filter.FilterIndexingServiceProvider) EventImpl(org.infinispan.notifications.cachelistener.event.impl.EventImpl) CacheEntryLoaded(org.infinispan.notifications.cachelistener.annotation.CacheEntryLoaded) FlagAffectedCommand(org.infinispan.commands.FlagAffectedCommand) ClusterCacheNotifier(org.infinispan.notifications.cachelistener.cluster.ClusterCacheNotifier) DataRehashed(org.infinispan.notifications.cachelistener.annotation.DataRehashed) CommandInvocationId(org.infinispan.commands.CommandInvocationId) ServiceFinder(org.infinispan.commons.util.ServiceFinder) HashMap(java.util.HashMap) Metadata(org.infinispan.metadata.Metadata) Function(java.util.function.Function) ConcurrentMap(java.util.concurrent.ConcurrentMap) HashSet(java.util.HashSet) FlagBitSets(org.infinispan.context.impl.FlagBitSets) DATA_REHASHED(org.infinispan.notifications.cachelistener.event.Event.Type.DATA_REHASHED) MediaType(org.infinispan.commons.dataconversion.MediaType) CacheEntryVisited(org.infinispan.notifications.cachelistener.annotation.CacheEntryVisited) CacheEntryExpiredEvent(org.infinispan.notifications.cachelistener.event.CacheEntryExpiredEvent) KeyPartitioner(org.infinispan.distribution.ch.KeyPartitioner) IntermediateOperation(org.infinispan.stream.impl.intops.IntermediateOperation) CacheEntryModified(org.infinispan.notifications.cachelistener.annotation.CacheEntryModified) Log(org.infinispan.util.logging.Log) SegmentSpecificCommand(org.infinispan.commands.SegmentSpecificCommand) EncoderRegistry(org.infinispan.marshall.core.EncoderRegistry) CACHE_ENTRY_ACTIVATED(org.infinispan.notifications.cachelistener.event.Event.Type.CACHE_ENTRY_ACTIVATED) ClusteringDependentLogic(org.infinispan.interceptors.locking.ClusteringDependentLogic) CacheEntriesEvicted(org.infinispan.notifications.cachelistener.annotation.CacheEntriesEvicted) CacheException(org.infinispan.commons.CacheException) Flowable(io.reactivex.rxjava3.core.Flowable) DelegatingCacheEntryListenerInvocation(org.infinispan.notifications.cachelistener.filter.DelegatingCacheEntryListenerInvocation) ListenerInvocation(org.infinispan.notifications.impl.ListenerInvocation) Util(org.infinispan.commons.util.Util) CacheEntryActivated(org.infinispan.notifications.cachelistener.annotation.CacheEntryActivated) PartitionStatusChangedEvent(org.infinispan.notifications.cachelistener.event.PartitionStatusChangedEvent) RpcManager(org.infinispan.remoting.rpc.RpcManager) Completable(io.reactivex.rxjava3.core.Completable) CacheEntryActivatedEvent(org.infinispan.notifications.cachelistener.event.CacheEntryActivatedEvent) RemoteClusterListener(org.infinispan.notifications.cachelistener.cluster.RemoteClusterListener) TopologyChangedEvent(org.infinispan.notifications.cachelistener.event.TopologyChangedEvent) Status(javax.transaction.Status) CacheMode(org.infinispan.configuration.cache.CacheMode) EncoderEntryMapper(org.infinispan.cache.impl.EncoderEntryMapper) Configuration(org.infinispan.configuration.cache.Configuration) TransactionManager(javax.transaction.TransactionManager) CacheEntryCreatedEvent(org.infinispan.notifications.cachelistener.event.CacheEntryCreatedEvent) CacheListenerException(org.infinispan.commons.CacheListenerException) Address(org.infinispan.remoting.transport.Address) ClusterListenerReplicateCallable(org.infinispan.notifications.cachelistener.cluster.ClusterListenerReplicateCallable) SuspectException(org.infinispan.remoting.transport.jgroups.SuspectException)

Example 5 with SuspectException

use of org.infinispan.remoting.transport.jgroups.SuspectException in project infinispan by infinispan.

the class AllClusterExecutor method executeRunnable.

private CompletableFuture<?> executeRunnable(Runnable runnable) {
    CompletableFuture<?> localFuture = startLocalInvocation(runnable);
    List<Address> targets = getRealTargets(false);
    int size = targets.size();
    CompletableFuture<?> remoteFuture;
    if (size == 1) {
        Address target = targets.get(0);
        if (log.isTraceEnabled()) {
            log.tracef("Submitting runnable to single remote node - JGroups Address %s", target);
        }
        remoteFuture = new CompletableFuture<>();
        ReplicableCommand command = new ReplicableRunnableCommand(runnable);
        CompletionStage<Response> request = transport.invokeCommand(target, command, PassthroughSingleResponseCollector.INSTANCE, DeliverOrder.NONE, time, unit);
        request.handle((r, t) -> {
            if (t != null) {
                remoteFuture.completeExceptionally(t);
            } else {
                consumeResponse(r, target, remoteFuture::completeExceptionally);
                // This won't override exception if there was one
                remoteFuture.complete(null);
            }
            return null;
        });
    } else if (size > 1) {
        remoteFuture = new CompletableFuture<>();
        ReplicableCommand command = new ReplicableRunnableCommand(runnable);
        ResponseCollector<Map<Address, Response>> collector = new PassthroughMapResponseCollector(targets.size());
        CompletionStage<Map<Address, Response>> request = transport.invokeCommand(targets, command, collector, DeliverOrder.NONE, time, unit);
        request.handle((r, t) -> {
            if (t != null) {
                remoteFuture.completeExceptionally(t);
            } else {
                r.forEach((key, value) -> consumeResponse(value, key, remoteFuture::completeExceptionally));
                remoteFuture.complete(null);
            }
            return null;
        });
    } else if (localFuture != null) {
        return localFuture;
    } else {
        return CompletableFutures.completedExceptionFuture(new SuspectException("No available nodes!"));
    }
    // remoteFuture is guaranteed to be non null at this point
    if (localFuture != null) {
        CompletableFuture<Void> future = new CompletableFuture<>();
        CompletableFuture.allOf(localFuture, remoteFuture).whenComplete((v, t) -> {
            if (t != null) {
                if (t instanceof CompletionException) {
                    future.completeExceptionally(t.getCause());
                } else {
                    future.completeExceptionally(t);
                }
            } else {
                future.complete(null);
            }
        });
        return future;
    }
    return remoteFuture;
}
Also used : TimeoutException(org.infinispan.util.concurrent.TimeoutException) LogFactory(org.infinispan.util.logging.LogFactory) CompletableFuture(java.util.concurrent.CompletableFuture) Function(java.util.function.Function) PassthroughSingleResponseCollector(org.infinispan.remoting.transport.impl.PassthroughSingleResponseCollector) EmbeddedCacheManager(org.infinispan.manager.EmbeddedCacheManager) CompletableFutures(org.infinispan.util.concurrent.CompletableFutures) ClusterExecutor(org.infinispan.manager.ClusterExecutor) Map(java.util.Map) Log(org.infinispan.util.logging.Log) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) Address(org.infinispan.remoting.transport.Address) Response(org.infinispan.remoting.responses.Response) TriConsumer(org.infinispan.util.function.TriConsumer) CompletableFutures.asCompletionException(org.infinispan.util.concurrent.CompletableFutures.asCompletionException) ReplicableCommand(org.infinispan.commands.ReplicableCommand) Transport(org.infinispan.remoting.transport.Transport) Executor(java.util.concurrent.Executor) Predicate(java.util.function.Predicate) CompletionException(java.util.concurrent.CompletionException) ResponseCollector(org.infinispan.remoting.transport.ResponseCollector) TimeUnit(java.util.concurrent.TimeUnit) List(java.util.List) CompletionStage(java.util.concurrent.CompletionStage) PassthroughMapResponseCollector(org.infinispan.remoting.transport.impl.PassthroughMapResponseCollector) DeliverOrder(org.infinispan.remoting.inboundhandler.DeliverOrder) SuspectException(org.infinispan.remoting.transport.jgroups.SuspectException) Address(org.infinispan.remoting.transport.Address) ReplicableCommand(org.infinispan.commands.ReplicableCommand) SuspectException(org.infinispan.remoting.transport.jgroups.SuspectException) Response(org.infinispan.remoting.responses.Response) PassthroughMapResponseCollector(org.infinispan.remoting.transport.impl.PassthroughMapResponseCollector) CompletableFuture(java.util.concurrent.CompletableFuture) PassthroughSingleResponseCollector(org.infinispan.remoting.transport.impl.PassthroughSingleResponseCollector) ResponseCollector(org.infinispan.remoting.transport.ResponseCollector) PassthroughMapResponseCollector(org.infinispan.remoting.transport.impl.PassthroughMapResponseCollector) CompletableFutures.asCompletionException(org.infinispan.util.concurrent.CompletableFutures.asCompletionException) CompletionException(java.util.concurrent.CompletionException) CompletionStage(java.util.concurrent.CompletionStage)

Aggregations

SuspectException (org.infinispan.remoting.transport.jgroups.SuspectException)10 Response (org.infinispan.remoting.responses.Response)6 Address (org.infinispan.remoting.transport.Address)6 ReplicableCommand (org.infinispan.commands.ReplicableCommand)5 CompletableFuture (java.util.concurrent.CompletableFuture)4 List (java.util.List)3 Map (java.util.Map)3 CompletionStage (java.util.concurrent.CompletionStage)3 Function (java.util.function.Function)3 ClusterExecutor (org.infinispan.manager.ClusterExecutor)3 EmbeddedCacheManager (org.infinispan.manager.EmbeddedCacheManager)3 CompletableFutures (org.infinispan.util.concurrent.CompletableFutures)3 TimeoutException (org.infinispan.util.concurrent.TimeoutException)3 TriConsumer (org.infinispan.util.function.TriConsumer)3 Log (org.infinispan.util.logging.Log)3 LogFactory (org.infinispan.util.logging.LogFactory)3 CompletionException (java.util.concurrent.CompletionException)2 Executor (java.util.concurrent.Executor)2 ScheduledExecutorService (java.util.concurrent.ScheduledExecutorService)2 TimeUnit (java.util.concurrent.TimeUnit)2