Class RetryingEntryWrappingInterceptor

  • All Implemented Interfaces:
    Visitor, AsyncInterceptor
    Direct Known Subclasses:
    BiasedEntryWrappingInterceptor

    public class RetryingEntryWrappingInterceptor
    extends EntryWrappingInterceptor
    Used in @{link org.infinispan.configuration.cache.CacheMode#SCATTERED_SYNC scattered cache} The commit is executed in ScatteredDistributionInterceptor before replicating the change from primary owner. When the ScatteredDistributionInterceptor throws a ConcurrentChangeException during single-key command processing, we know that the entry has not been committed and can safely remove the whole entry from context and retry. When the command processes multiple keys, some of the entries might be already committed. Therefore we have to keep the original value in a RepeatableReadEntry and for committed entries we only reset the value before retry (we assume that the outcome of an operation is deterministic). The non-committed entries are removed and re-wrapped as in the single-key case.
    Author:
    Radim Vansa <rvansa@redhat.com>