You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by eo...@apache.org on 2022/07/29 06:56:55 UTC
[bookkeeper] branch master updated: 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.
eolivelli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 05ca058444 Make sure the LedgerHandle close callback can be completed when encounter exception (#2913)
05ca058444 is described below
commit 05ca058444e83a349d3a002b8d893817691f36b0
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.
---
.../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 4b1a20c25e..316cc7d32d 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()) {