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