protected IndexRepository computeRepository(Integer bucketId) {
try {
isDataRegionReady.await();
} catch (InterruptedException e) {
throw new InternalGemFireError("Unable to create index repository", e);
}
IndexRepository repo = indexRepositories.compute(bucketId, (key, oldRepository) -> {
try {
if (closed) {
if (oldRepository != null) {
oldRepository.cleanup();
}
throw new LuceneIndexDestroyedException(index.getName(), index.getRegionPath());
}
return computeRepository(bucketId, serializer, index, userRegion, oldRepository);
} catch (IOException e) {
throw new InternalGemFireError("Unable to create index repository", e);
}
});
return repo;
}