}
// Returns false iff already unlocked.
private boolean unlockWavelet(CheckedTransaction tx, SlobId convId)
throws RetryableFailure, PermanentFailure {
ConvMetadataGsonImpl metadata = convMetadataStore.get(tx, convId);
Assert.check(metadata.hasImportMetadata(), "%s: Metadata has no import: %s",
convId, metadata);
if (metadata.getImportMetadata().getImportFinished()) {
log.info(convId + ": already unlocked");
return false;
}
ImportMetadata importMetadata = metadata.getImportMetadata();
importMetadata.setImportFinished(true);
metadata.setImportMetadata(importMetadata);
log.info(convId + ": unlocking");
convMetadataStore.put(tx, convId, metadata);
return true;
}