if (cache) {
List cachedRows = this.cache.getCachedSnapshots(cacheKey);
if (cachedRows != null) {
// decorate result immutable list to avoid messing up the cache
this.response = new ListResponse(Collections.unmodifiableList(cachedRows));
if (cachedRows instanceof ListWithPrefetches) {
this.prefetchResultsByPath = ((ListWithPrefetches) cachedRows)
.getPrefetchResultsByPath();
}