This is an automated email from the ASF dual-hosted git repository. mmerli 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 113d40ac50 Change callbacks in CleanupLedgerManager as a Set (#4123) 113d40ac50 is described below commit 113d40ac5057709b3e44b9281231456b4ef81065 Author: houxiaoyu <houxia...@apache.org> AuthorDate: Fri Jan 12 01:21:41 2024 +0800 Change callbacks in CleanupLedgerManager as a Set (#4123) --- .../apache/bookkeeper/meta/CleanupLedgerManager.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/CleanupLedgerManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/CleanupLedgerManager.java index 669304c1c1..bc4cefe6fc 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/CleanupLedgerManager.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/CleanupLedgerManager.java @@ -23,7 +23,6 @@ import java.util.HashSet; import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; import java.util.concurrent.locks.ReentrantReadWriteLock; import lombok.extern.slf4j.Slf4j; import org.apache.bookkeeper.client.BKException; @@ -55,7 +54,7 @@ public class CleanupLedgerManager implements LedgerManager { public void operationComplete(int rc, T result) { closeLock.readLock().lock(); try { - if (!closed && null != removeCallback(cb)) { + if (!closed && removeCallback(cb)) { cb.operationComplete(rc, result); } } finally { @@ -78,8 +77,7 @@ public class CleanupLedgerManager implements LedgerManager { } private final LedgerManager underlying; - private final ConcurrentMap<GenericCallback, GenericCallback> callbacks = - new ConcurrentHashMap<GenericCallback, GenericCallback>(); + private final Set<GenericCallback> callbacks = ConcurrentHashMap.newKeySet(); private boolean closed = false; private final ReentrantReadWriteLock closeLock = new ReentrantReadWriteLock(); private final Set<CompletableFuture<?>> futures = ConcurrentHashMap.newKeySet(); @@ -94,7 +92,7 @@ public class CleanupLedgerManager implements LedgerManager { } private void addCallback(GenericCallback callback) { - callbacks.put(callback, callback); + callbacks.add(callback); } @Override @@ -107,7 +105,7 @@ public class CleanupLedgerManager implements LedgerManager { underlying.unregisterLedgerMetadataListener(ledgerId, listener); } - private GenericCallback removeCallback(GenericCallback callback) { + private boolean removeCallback(GenericCallback callback) { return callbacks.remove(callback); } @@ -206,7 +204,7 @@ public class CleanupLedgerManager implements LedgerManager { underlying.asyncProcessLedgers(processor, new AsyncCallback.VoidCallback() { @Override public void processResult(int rc, String path, Object ctx) { - if (null != removeCallback(stub)) { + if (removeCallback(stub)) { finalCb.processResult(rc, path, ctx); } } @@ -239,14 +237,13 @@ public class CleanupLedgerManager implements LedgerManager { return; } closed = true; - keys = new HashSet<GenericCallback>(callbacks.keySet()); + keys = new HashSet<>(callbacks); } finally { closeLock.writeLock().unlock(); } for (GenericCallback key : keys) { - GenericCallback callback = callbacks.remove(key); - if (null != callback) { - callback.operationComplete(BKException.Code.ClientClosedException, null); + if (callbacks.remove(key)) { + key.operationComplete(BKException.Code.ClientClosedException, null); } } BKException exception = new BKException.BKClientClosedException();