diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java index 1d21fc9377e..0f6f4d67aa7 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java @@ -330,11 +330,14 @@ CompletableFuture> closeRecovered() { return builder.withClosedState().withLastEntryId(lac).withLength(len).build(); }, this::setLedgerMetadata).run(); - f.thenRun(() -> { - synchronized (metadataLock) { - newEnsemblesFromRecovery.clear(); - } - }); + f.whenComplete((result, exception) -> { + synchronized (metadataLock) { + newEnsemblesFromRecovery.clear(); + } + if (exception != null) { + LOG.error("When closeRecovered,failed on clearing newEnsemblesFromRecovery.", exception); + } + }); return f; }