This is an automated email from the ASF dual-hosted git repository.
bogong pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-2.9 by this push:
new b48d4199b0b cherry-pick -x "6c65ca0"
b48d4199b0b is described below
commit b48d4199b0b44f73a23f86ae79aab4cceafc2c5c
Author: LinChen <[email protected]>
AuthorDate: Thu Oct 13 09:51:48 2022 +0800
cherry-pick -x "6c65ca0"
---
.../org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git
a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
index e31d4eff887..51b6ebaabab 100644
---
a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
+++
b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java
@@ -2052,10 +2052,12 @@ public class ManagedCursorImpl implements ManagedCursor
{
individualDeletedMessages);
}
} else if (config.isDeletionAtBatchIndexLevelEnabled() &&
batchDeletedIndexes != null) {
- BitSetRecyclable bitSet =
batchDeletedIndexes.computeIfAbsent(position, (v) ->
BitSetRecyclable.create().resetWords(position.ackSet));
BitSetRecyclable givenBitSet =
BitSetRecyclable.create().resetWords(position.ackSet);
- bitSet.and(givenBitSet);
- givenBitSet.recycle();
+ BitSetRecyclable bitSet =
batchDeletedIndexes.computeIfAbsent(position, (v) -> givenBitSet);
+ if (givenBitSet != bitSet) {
+ bitSet.and(givenBitSet);
+ givenBitSet.recycle();
+ }
if (bitSet.isEmpty()) {
PositionImpl previousPosition =
ledger.getPreviousPosition(position);
individualDeletedMessages.addOpenClosed(previousPosition.getLedgerId(),
previousPosition.getEntryId(),