You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vp...@apache.org on 2022/03/15 13:06:05 UTC

[ignite-3] branch main updated: IGNITE-16585 Fixed NPE during exception handling in DelegatingStateMachine (#725)

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

vpyatkov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 3d7ed2f  IGNITE-16585 Fixed NPE during exception handling in DelegatingStateMachine (#725)
3d7ed2f is described below

commit 3d7ed2ffd463e8ec38c31e9e5879c0c72ae3bebb
Author: Mirza Aliev <al...@gmail.com>
AuthorDate: Tue Mar 15 16:05:59 2022 +0300

    IGNITE-16585 Fixed NPE during exception handling in DelegatingStateMachine (#725)
---
 .../apache/ignite/internal/raft/server/impl/JraftServerImpl.java  | 8 +++++++-
 .../raft/src/main/java/org/apache/ignite/raft/jraft/Status.java   | 8 ++++----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java
index 113ac23..4acfc93 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/JraftServerImpl.java
@@ -442,7 +442,13 @@ public class JraftServerImpl implements RaftServer {
                     }
                 });
             } catch (Exception err) {
-                Status st = new Status(RaftError.ESTATEMACHINE, err.getMessage());
+                Status st;
+
+                if (err.getMessage() != null) {
+                    st = new Status(RaftError.ESTATEMACHINE, err.getMessage());
+                } else {
+                    st = new Status(RaftError.ESTATEMACHINE, "Unknown state machine error.");
+                }
 
                 if (iter.done() != null) {
                     iter.done().run(st);
diff --git a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/Status.java b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/Status.java
index 017c6f4..72ea991 100644
--- a/modules/raft/src/main/java/org/apache/ignite/raft/jraft/Status.java
+++ b/modules/raft/src/main/java/org/apache/ignite/raft/jraft/Status.java
@@ -105,11 +105,11 @@ public class Status implements Copiable<Status> {
     }
 
     public Status(RaftError raftError, String fmt, Object... args) {
-        this.state = new State(raftError.getNumber(), String.format(fmt, args));
+        this.state = new State(raftError.getNumber(), fmt == null ? null : String.format(fmt, args));
     }
 
     public Status(int code, String fmt, Object... args) {
-        this.state = new State(code, String.format(fmt, args));
+        this.state = new State(code, fmt == null ? null : String.format(fmt, args));
     }
 
     public Status(int code, String errorMsg) {
@@ -200,14 +200,14 @@ public class Status implements Copiable<Status> {
      * Set error code and error msg.
      */
     public void setError(int code, String fmt, Object... args) {
-        this.state = new State(code, String.format(String.valueOf(fmt), args));
+        this.state = new State(code, fmt == null ? null : String.format(fmt, args));
     }
 
     /**
      * Set raft error and error msg.
      */
     public void setError(RaftError error, String fmt, Object... args) {
-        this.state = new State(error.getNumber(), String.format(String.valueOf(fmt), args));
+        this.state = new State(error.getNumber(), fmt == null ? null : String.format(fmt, args));
     }
 
     @Override