return this.objectiveNamesCache.get(key, new Callable<Optional<IWVWObjectiveNameDTO[]>>() {
@Override
public Optional<IWVWObjectiveNameDTO[]> call() throws Exception {
final WebResource resource = ServiceUtils.REST_CLIENT.resource(OBJECTIVE_NAMES_URL.toExternalForm()).queryParam("lang", key.getLanguage());
resource.addFilter(new RetryClientFilter(ServiceUtils.REST_RETRY_COUNT));
final WebResource.Builder builder = resource.accept(MediaType.APPLICATION_JSON_TYPE);
try {
final String response = builder.get(String.class);
LOGGER.trace("Retrieved response=" + response);
final IWVWObjectiveNameDTO[] result = WVWService.this.wvwDTOFactory.newObjectiveNamesOf(response);
if (LOGGER.isDebugEnabled()) {