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