Class DefaultFailureCache

  • All Implemented Interfaces:
    FailureCache

    @Contract(threading=SAFE)
    public class DefaultFailureCache
    extends java.lang.Object
    implements FailureCache
    Implements a bounded failure cache. The oldest entries are discarded when the maximum size is exceeded.
    Since:
    4.3
    • Field Detail

      • maxSize

        private final int maxSize
      • storage

        private final java.util.concurrent.ConcurrentMap<java.lang.String,​FailureCacheValue> storage
    • Constructor Detail

      • DefaultFailureCache

        public DefaultFailureCache()
        Create a new failure cache with the maximum size of DEFAULT_MAX_SIZE.
      • DefaultFailureCache

        public DefaultFailureCache​(int maxSize)
        Creates a new failure cache with the specified maximum size.
        Parameters:
        maxSize - the maximum number of entries the cache should store
    • Method Detail

      • getErrorCount

        public int getErrorCount​(java.lang.String identifier)
        Description copied from interface: FailureCache
        Get the current error count.
        Specified by:
        getErrorCount in interface FailureCache
        Parameters:
        identifier - the identifier for which the error count is requested
        Returns:
        the currently known error count or zero if there is no record
      • resetErrorCount

        public void resetErrorCount​(java.lang.String identifier)
        Description copied from interface: FailureCache
        Reset the error count back to zero.
        Specified by:
        resetErrorCount in interface FailureCache
        Parameters:
        identifier - the identifier for which the error count should be reset
      • increaseErrorCount

        public void increaseErrorCount​(java.lang.String identifier)
        Description copied from interface: FailureCache
        Increases the error count by one.
        Specified by:
        increaseErrorCount in interface FailureCache
        Parameters:
        identifier - the identifier for which the error count should be increased
      • updateValue

        private void updateValue​(java.lang.String identifier)
      • removeOldestEntryIfMapSizeExceeded

        private void removeOldestEntryIfMapSizeExceeded()
      • findValueWithOldestTimestamp

        private FailureCacheValue findValueWithOldestTimestamp()