private static <S> CheckResult<S> noUpdateRequired() {
            return new CheckResult<>(false, null);
        }
@param valueSupplier Will be called on first call of {@link CachedValue#getValue()}
                     then any time the value supplied by stateSupplier changes. If multiple
                     threads call {@link CachedValue#getValue()} at once valueSupplier
                     may be called by each thread. Should be side effect free.
stroom-util/src/main/java/stroom/util/concurrent/CachedValue.java