Class ValidResponseCollector<T>

    • Constructor Detail

      • ValidResponseCollector

        public ValidResponseCollector()
    • Method Detail

      • addResponse

        public final T addResponse​(Address sender,
                                   Response response)
        Description copied from interface: ResponseCollector
        Called when a response is received, or when a target node becomes unavailable.

        When a target node leaves the cluster, this method is called with a CacheNotFoundResponse.

        Should return a non-null result if the request should complete with that value, or null if it should wait for more responses. If the method throws an exception, the request will be completed with that exception. If the last response is received and addResponse() still returns null, ResponseCollector.finish() will also be called to obtain a result.

        Thread safety: addResponse() will *not* be called concurrently from multiple threads, and the request will not be completed while addResponse() is running.

        Specified by:
        addResponse in interface ResponseCollector<T>
      • addValidResponse

        protected abstract T addValidResponse​(Address sender,
                                              ValidResponse response)
        Process a valid response from a target.
        Returns:
        null to continue waiting for response, non-null to complete with that value.
      • addTargetNotFound

        protected abstract T addTargetNotFound​(Address sender)
        Process a target leaving the cluster or stopping the cache.
        Returns:
        null to continue waiting for response, non-null to complete with that value.
      • addException

        protected abstract T addException​(Address sender,
                                          Exception exception)
        Process an exception from a target.
        Returns:
        null to continue waiting for responses (the default), non-null to complete with that value.