private void deleteBlob(final Set<String> deletedBlobStores, final BlobRef blobRef) {
String blobStoreName = blobRef.getStore();
if (deletedBlobStores.contains(blobStoreName)) {
return;
}
BlobStore blobStore = blobStoreManager.get(blobRef.getStore());
if (blobStore == null) {
if (deletedBlobStores.add(blobStoreName)) {
log.info("Not deleting blobs for blob store {}, blob store not found", blobStoreName);
}
return;
}
try {
blobStore.delete(blobRef.getBlobId(), "Deleting Bucket");
}
catch (InvalidStateException e) {
if (deletedBlobStores.add(blobStoreName)) {
log.info("Not deleting blobs for blob store {}, invalid state {}", blobStoreName, e.getInvalidState(),
log.isDebugEnabled() ? e : null);
}
}
catch (Exception e) {
log.warn("Error deleting blob {}, skipping", blobRef, e);
}
}
}