Skip to content

Commit afdba8a

Browse files
committed
[fix][broker] Support null mark delete properties in NonDurableCursorImpl.internalAsyncMarkDelete
1 parent 7c8b5f1 commit afdba8a

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/NonDurableCursorImpl.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,13 @@ void recover(final VoidCallback callback) {
103103
protected void internalAsyncMarkDelete(final Position newPosition, Map<String, Long> properties,
104104
final MarkDeleteCallback callback, final Object ctx, Runnable alignAcknowledgeStatusAfterPersisted) {
105105
// Bypass persistence of mark-delete position and individually deleted messages info
106-
107-
MarkDeleteEntry mdEntry = new MarkDeleteEntry(newPosition, properties, callback, ctx,
108-
alignAcknowledgeStatusAfterPersisted);
106+
MarkDeleteEntry mdEntry;
109107
lock.writeLock().lock();
110108
try {
109+
// use given properties or when missing, use the properties from the previous field value
110+
Map<String, Long> propertiesToUse = properties != null ? properties : getProperties();
111+
mdEntry = new MarkDeleteEntry(newPosition, propertiesToUse, callback, ctx,
112+
alignAcknowledgeStatusAfterPersisted);
111113
lastMarkDeleteEntry = mdEntry;
112114
mdEntry.alignAcknowledgeStatus();
113115
} finally {

0 commit comments

Comments
 (0)