This is an automated email from the ASF dual-hosted git repository. yong pushed a commit to branch branch-4.15 in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit 7f53f0b0e272b253d79ee66413e746e39fedf45c Author: Penghui Li <[email protected]> AuthorDate: Fri Jul 29 14:56:48 2022 +0800 Make sure the LedgerHandle close callback can be completed when encounter exception (#2913) * Make sure the LedgerHandle close callback can be completed when encounter exception. (cherry picked from commit 05ca058444e83a349d3a002b8d893817691f36b0) --- .../src/main/java/org/apache/bookkeeper/client/LedgerHandle.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java index 4d9090e589..bead7d1072 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java @@ -571,7 +571,12 @@ public class LedgerHandle implements WriteHandle { // error out all pending adds during closing, the callbacks shouldn't be // running under any bk locks. - errorOutPendingAdds(rc, pendingAdds); + try { + errorOutPendingAdds(rc, pendingAdds); + } catch (Throwable e) { + closePromise.completeExceptionally(e); + return; + } if (prevHandleState != HandleState.CLOSED) { if (LOG.isDebugEnabled()) {
