diff --git a/hystrix-core/src/main/java/com/netflix/hystrix/HystrixCollapser.java b/hystrix-core/src/main/java/com/netflix/hystrix/HystrixCollapser.java index db5799beb..fd9558e94 100644 --- a/hystrix-core/src/main/java/com/netflix/hystrix/HystrixCollapser.java +++ b/hystrix-core/src/main/java/com/netflix/hystrix/HystrixCollapser.java @@ -377,8 +377,10 @@ public Observable toObservable() { */ public Observable toObservable(Scheduler observeOn) { + final boolean isRequestCacheEnabled = getProperties().requestCacheEnabled().get(); + /* try from cache first */ - if (getProperties().requestCacheEnabled().get()) { + if (isRequestCacheEnabled) { Observable fromCache = requestCache.get(getCacheKey()); if (fromCache != null) { metrics.markResponseFromCache(); @@ -389,7 +391,7 @@ public Observable toObservable(Scheduler observeOn) { RequestCollapser requestCollapser = collapserFactory.getRequestCollapser(collapserInstanceWrapper); Observable response = requestCollapser.submitRequest(getRequestArgument()); metrics.markRequestBatched(); - if (getProperties().requestCacheEnabled().get()) { + if (isRequestCacheEnabled) { /* * A race can occur here with multiple threads queuing but only one will be cached. * This means we can have some duplication of requests in a thread-race but we're okay