This is an automated email from the ASF dual-hosted git repository. tanxinyu pushed a commit to branch release-3.1.2_review in repository https://gitbox.apache.org/repos/asf/ratis.git
commit 263ea69b2ff295355dc7f2074bf7cf69a820e8b2 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());
