This is an automated email from the ASF dual-hosted git repository.

technoboy pushed a commit to branch branch-2.7
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/branch-2.7 by this push:
     new 474138561fe Fix getting the last message-id from an empty compact 
ledger. (#16402)
474138561fe is described below

commit 474138561fef58e3feddc6e4f706226a0e2ba5ef
Author: Jiwei Guo <[email protected]>
AuthorDate: Wed Jul 6 09:29:15 2022 +0800

    Fix getting the last message-id from an empty compact ledger. (#16402)
---
 .../org/apache/pulsar/compaction/CompactedTopicImpl.java  | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/compaction/CompactedTopicImpl.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/compaction/CompactedTopicImpl.java
index ff00bfe9655..c3af219f21b 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/compaction/CompactedTopicImpl.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/compaction/CompactedTopicImpl.java
@@ -302,11 +302,16 @@ public class CompactedTopicImpl implements CompactedTopic 
{
         if (compactionHorizon == null) {
             return CompletableFuture.completedFuture(null);
         }
-        return compactedTopicContext.thenCompose(context ->
-                readEntries(context.ledger, 
context.ledger.getLastAddConfirmed(), context.ledger.getLastAddConfirmed())
-                        .thenCompose(entries -> entries.size() > 0
-                                ? 
CompletableFuture.completedFuture(entries.get(0))
-                                : CompletableFuture.completedFuture(null)));
+        return compactedTopicContext.thenCompose(context -> {
+                    if (context.ledger.getLastAddConfirmed() == -1) {
+                        return CompletableFuture.completedFuture(null);
+                    }
+                    return readEntries(context.ledger, 
context.ledger.getLastAddConfirmed(),
+                            context.ledger.getLastAddConfirmed())
+                            .thenCompose(entries -> entries.size() > 0
+                                    ? 
CompletableFuture.completedFuture(entries.get(0))
+                                    : CompletableFuture.completedFuture(null));
+                });
     }
 
     private static int comparePositionAndMessageId(PositionImpl p, 
MessageIdData m) {

Reply via email to