This is an automated email from the ASF dual-hosted git repository.
runzhiwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ratis.git
The following commit(s) were added to refs/heads/master by this push:
new 48f1f5e RATIS-945. Fix exception in RaftClientReply was ignored
48f1f5e is described below
commit 48f1f5e42e4f4e8021a7cbb2eed46a0c2cb041c5
Author: runzhiwang <[email protected]>
AuthorDate: Mon Aug 31 17:04:06 2020 +0800
RATIS-945. Fix exception in RaftClientReply was ignored
---
.../org/apache/ratis/logservice/impl/LogReaderImpl.java | 16 ++++++++++++++++
.../org/apache/ratis/logservice/impl/LogStreamImpl.java | 16 ++++++++++++++++
.../org/apache/ratis/logservice/impl/LogWriterImpl.java | 7 +++++++
3 files changed, 39 insertions(+)
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogReaderImpl.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogReaderImpl.java
index 38437b1..c43e916 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogReaderImpl.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogReaderImpl.java
@@ -80,6 +80,10 @@ public class LogReaderImpl implements LogReader {
raftClient
.sendReadOnly(Message.valueOf(LogServiceProtoUtil
.toReadLogRequestProto(parent.getName(), currentRecordId,
1).toByteString()));
+ if (reply.getException() != null) {
+ throw new IOException(reply.getException());
+ }
+
ReadLogReplyProto proto =
ReadLogReplyProto.parseFrom(reply.getMessage().getContent());
if (proto.hasException()) {
LogServiceException e = proto.getException();
@@ -106,6 +110,10 @@ public class LogReaderImpl implements LogReader {
try {
RaftClientReply reply =
raftClient.sendReadOnly(Message.valueOf(LogServiceProtoUtil
.toReadLogRequestProto(parent.getName(), currentRecordId,
1).toByteString()));
+ if (reply.getException() != null) {
+ throw new IOException(reply.getException());
+ }
+
ReadLogReplyProto proto =
ReadLogReplyProto.parseFrom(reply.getMessage().getContent());
if (proto.hasException()) {
LogServiceException e = proto.getException();
@@ -129,6 +137,10 @@ public class LogReaderImpl implements LogReader {
RaftClientReply reply = raftClient
.sendReadOnly(Message.valueOf(LogServiceProtoUtil
.toReadLogRequestProto(parent.getName(), currentRecordId,
numRecords).toByteString()));
+ if (reply.getException() != null) {
+ throw new IOException(reply.getException());
+ }
+
ReadLogReplyProto proto =
ReadLogReplyProto.parseFrom(reply.getMessage().getContent());
if (proto.hasException()) {
LogServiceException e = proto.getException();
@@ -156,6 +168,10 @@ public class LogReaderImpl implements LogReader {
try {
RaftClientReply reply =
raftClient.sendReadOnly(Message.valueOf(LogServiceProtoUtil
.toReadLogRequestProto(parent.getName(), currentRecordId,
buffers.length).toByteString()));
+ if (reply.getException() != null) {
+ throw new IOException(reply.getException());
+ }
+
ReadLogReplyProto proto =
ReadLogReplyProto.parseFrom(reply.getMessage().getContent());
if (proto.hasException()) {
LogServiceException e = proto.getException();
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogStreamImpl.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogStreamImpl.java
index 7980de7..f029fb3 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogStreamImpl.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogStreamImpl.java
@@ -110,6 +110,10 @@ public class LogStreamImpl implements LogStream {
RaftClientReply reply = raftClient
.sendReadOnly(Message.valueOf(LogServiceProtoUtil
.toGetSizeRequestProto(name).toByteString()));
+ if (reply.getException() != null) {
+ throw new IOException(reply.getException());
+ }
+
GetLogSizeReplyProto proto =
GetLogSizeReplyProto.parseFrom(reply.getMessage().getContent());
if (proto.hasException()) {
@@ -124,6 +128,10 @@ public class LogStreamImpl implements LogStream {
RaftClientReply reply = raftClient
.sendReadOnly(Message.valueOf(LogServiceProtoUtil
.toGetLengthRequestProto(name).toByteString()));
+ if (reply.getException() != null) {
+ throw new IOException(reply.getException());
+ }
+
GetLogLengthReplyProto proto =
GetLogLengthReplyProto.parseFrom(reply.getMessage().getContent());
if (proto.hasException()) {
@@ -149,6 +157,10 @@ public class LogStreamImpl implements LogStream {
RaftClientReply reply = raftClient
.sendReadOnly(Message.valueOf(LogServiceProtoUtil
.toGetLastCommittedIndexRequestProto(name).toByteString()));
+ if (reply.getException() != null) {
+ throw new IOException(reply.getException());
+ }
+
GetLogLastCommittedIndexReplyProto proto =
GetLogLastCommittedIndexReplyProto.parseFrom(reply.getMessage().getContent());
if (proto.hasException()) {
@@ -167,6 +179,10 @@ public class LogStreamImpl implements LogStream {
RaftClientReply reply = raftClient
.sendReadOnly(Message.valueOf(LogServiceProtoUtil
.toGetStartIndexProto(name).toByteString()));
+ if (reply.getException() != null) {
+ throw new IOException(reply.getException());
+ }
+
GetLogStartIndexReplyProto proto =
GetLogStartIndexReplyProto.parseFrom(reply.getMessage().getContent());
if (proto.hasException()) {
diff --git
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogWriterImpl.java
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogWriterImpl.java
index 4ab4f19..e292739 100644
---
a/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogWriterImpl.java
+++
b/ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/LogWriterImpl.java
@@ -69,6 +69,10 @@ public class LogWriterImpl implements LogWriter {
try {
RaftClientReply reply = raftClient.send(
Message.valueOf(LogServiceProtoUtil.toAppendBBEntryLogRequestProto(parent.getName(),
list).toByteString()));
+ if (reply.getException() != null) {
+ throw new IOException(reply.getException());
+ }
+
AppendLogEntryReplyProto proto =
AppendLogEntryReplyProto.parseFrom(reply.getMessage().getContent());
if (proto.hasException()) {
LogServiceException e = proto.getException();
@@ -87,6 +91,9 @@ public class LogWriterImpl implements LogWriter {
try {
RaftClientReply reply = raftClient.send(Message
.valueOf(LogServiceProtoUtil.toSyncLogRequestProto(parent.getName()).toByteString()));
+ if (reply.getException() != null) {
+ throw new IOException(reply.getException());
+ }
SyncLogReplyProto proto =
SyncLogReplyProto.parseFrom(reply.getMessage().getContent());
if (proto.hasException()) {