in simplestore/src/main/java/com/uber/simplestore/impl/SimpleStoreImpl.java [131:154]
public ListenableFuture<byte[]> put(String key, @Nullable byte[] value) {
requireOpen();
return Futures.submitAsync(
() -> {
Exception isDead = isDead();
if (isDead != null) {
return Futures.immediateFailedFuture(isDead);
}
if (value == null || value.length == 0) {
cache.put(key, EMPTY_BYTES);
deleteFile(key);
return Futures.immediateFuture(EMPTY_BYTES);
} else {
cache.put(key, value);
try {
writeFile(key, value);
} catch (IOException e) {
return Futures.immediateFailedFuture(e);
}
return Futures.immediateFuture(value);
}
},
orderedIoExecutor);
}