return this.getOrCreateObjectiveNameCache(key).get(id, new Callable<Optional<IWVWObjectiveNameDTO>>() {
@Override
public Optional<IWVWObjectiveNameDTO> call() throws Exception {
final IWVWObjectiveNameDTO[] names = WVWService.this.retrieveAllObjectiveNames(key);
int index = 0;
IWVWObjectiveNameDTO result = null;
while ((index < names.length) && (result == null)) {
result = names[index].getId() == id ? names[index] : null;
index++;
}
if (LOGGER.isTraceEnabled()) {