@Override public String resolve(String componentURI, String pageURI) throws ItemNotFoundException, SerializationException { String key; if (!StringUtils.isEmpty(pageURI)) { key = getCacheKey(componentURI, pageURI); } else { key = getCacheKey(componentURI); } final CacheElement<String> cacheElement = cacheProvider.loadPayloadFromLocalCache(key); String result; if (!validInCache(cacheElement)) { if (!StringUtils.isEmpty(pageURI)) { result = linkProvider.resolveComponentFromPage(componentURI, pageURI); } else { result = linkProvider.resolveComponent(componentURI); } try { result = addToCache(componentURI, key, cacheElement, result); } catch (ParseException e) { String message = String.format("Invalid ComponentURI %s", componentURI); LOG.error(message); throw new SerializationException(message, e); } } else { result = cacheElement.getPayload(); LOG.debug("Return link url: {} for uri: {} from cache", result, componentURI); } return result; }