You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by yo...@apache.org on 2022/08/01 13:44:51 UTC
[bookkeeper] 05/17: Make sure the LedgerHandle close callback can be completed when encounter exception (#2913)
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 <pe...@apache.org>
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()) {