This is an automated email from the ASF dual-hosted git repository.
szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ratis.git
The following commit(s) were added to refs/heads/master by this push:
new 3a51121ad RATIS-2179. Fix NPE in RaftServerImpl.getLogInfo. (#1171)
3a51121ad is described below
commit 3a51121adaf2145e4ec020f4c24858f9f03745d2
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 cfcdd1519..5a7e37233 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
@@ -665,10 +665,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());