diff --git a/src/main/java/it/cavallium/dbengine/database/disk/LLLocalDictionary.java b/src/main/java/it/cavallium/dbengine/database/disk/LLLocalDictionary.java index 8530bb5..0215960 100644 --- a/src/main/java/it/cavallium/dbengine/database/disk/LLLocalDictionary.java +++ b/src/main/java/it/cavallium/dbengine/database/disk/LLLocalDictionary.java @@ -419,7 +419,15 @@ public class LLLocalDictionary implements LLDictionary { existsAlmostCertainly, UpdateAtomicResultMode.DELTA); return ((UpdateAtomicResultDelta) result).delta(); }).onErrorMap(cause -> new IOException("Failed to read or write", cause)), - keySend -> Mono.fromRunnable(keySend::close)); + keySend -> Mono.fromRunnable(keySend::close)).doOnDiscard(UpdateAtomicResult.class, uar -> { + if (uar instanceof UpdateAtomicResultDelta delta) { + delta.delta().close(); + } else if (uar instanceof UpdateAtomicResultCurrent cur) { + cur.current().close(); + } else if (uar instanceof UpdateAtomicResultPrevious cur) { + cur.previous().close(); + } + }); } @Override