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

tanxinyu pushed a commit to branch snapshot-3
in repository https://gitbox.apache.org/repos/asf/ratis.git

commit 87ba60c590d43a7518137dc31e0fdcb9231fd920
Author: Nicholas Jiang <[email protected]>
AuthorDate: Fri Oct 25 15:31:27 2024 +0800

    RATIS-2179. Fix NPE in RaftServerImpl.getLogInfo. (#1171)
---
 .../org/apache/ratis/server/impl/RaftServerImpl.java    | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git 
a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java 
b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
index ba7d8668c..3ffcee079 100644
--- 
a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
+++ 
b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
@@ -664,10 +664,19 @@ class RaftServerImpl implements RaftServer.Division,
 
   LogInfoProto getLogInfo(){
     final RaftLog log = getRaftLog();
-    LogInfoProto.Builder logInfoBuilder = LogInfoProto.newBuilder()
-        .setApplied(getStateMachine().getLastAppliedTermIndex().toProto())
-        .setCommitted(log.getTermIndex(log.getLastCommittedIndex()).toProto())
-        .setLastEntry(log.getLastEntryTermIndex().toProto());
+    LogInfoProto.Builder logInfoBuilder = LogInfoProto.newBuilder();
+    final TermIndex applied = getStateMachine().getLastAppliedTermIndex();
+    if (applied != null) {
+      logInfoBuilder.setApplied(applied.toProto());
+    }
+    final TermIndex committed = log.getTermIndex(log.getLastCommittedIndex());
+    if (committed != null) {
+      logInfoBuilder.setCommitted(committed.toProto());
+    }
+    final TermIndex entry = log.getLastEntryTermIndex();
+    if (entry != null) {
+      logInfoBuilder.setLastEntry(entry.toProto());
+    }
     final SnapshotInfo snapshot = getStateMachine().getLatestSnapshot();
     if (snapshot != null) {
       logInfoBuilder.setLastSnapshot(snapshot.getTermIndex().toProto());

Reply via email to