You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by ji...@apache.org on 2017/07/09 04:02:34 UTC
incubator-ratis git commit: RATIS-8. Avoid using Optional for data
fields in TransactionContext. Contributed by Hugo Louro.
Repository: incubator-ratis
Updated Branches:
refs/heads/master a5b84af2d -> 237be5d10
RATIS-8. Avoid using Optional for data fields in TransactionContext. Contributed by Hugo Louro.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ratis/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ratis/commit/237be5d1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ratis/tree/237be5d1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ratis/diff/237be5d1
Branch: refs/heads/master
Commit: 237be5d10b389fd4f0b7829bb95e88ec94e8b72f
Parents: a5b84af
Author: Jing Zhao <ji...@apache.org>
Authored: Sat Jul 8 21:02:26 2017 -0700
Committer: Jing Zhao <ji...@apache.org>
Committed: Sat Jul 8 21:02:26 2017 -0700
----------------------------------------------------------------------
.../arithmetic/ArithmeticStateMachine.java | 2 +-
.../ratis/server/impl/RaftServerImpl.java | 5 +-
.../apache/ratis/server/storage/RaftLog.java | 2 +-
.../ratis/statemachine/BaseStateMachine.java | 2 +-
.../ratis/statemachine/TransactionContext.java | 52 ++++++++++----------
.../SimpleStateMachine4Testing.java | 2 +-
.../ratis/statemachine/TestStateMachine.java | 18 +++----
7 files changed, 41 insertions(+), 42 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/237be5d1/ratis-examples/src/main/java/org/apache/ratis/examples/arithmetic/ArithmeticStateMachine.java
----------------------------------------------------------------------
diff --git a/ratis-examples/src/main/java/org/apache/ratis/examples/arithmetic/ArithmeticStateMachine.java b/ratis-examples/src/main/java/org/apache/ratis/examples/arithmetic/ArithmeticStateMachine.java
index 53e8ab7..a4199b6 100644
--- a/ratis-examples/src/main/java/org/apache/ratis/examples/arithmetic/ArithmeticStateMachine.java
+++ b/ratis-examples/src/main/java/org/apache/ratis/examples/arithmetic/ArithmeticStateMachine.java
@@ -156,7 +156,7 @@ public class ArithmeticStateMachine extends BaseStateMachine {
@Override
public CompletableFuture<Message> applyTransaction(TransactionContext trx) {
- final LogEntryProto entry = trx.getLogEntry().get();
+ final LogEntryProto entry = trx.getLogEntry();
final AssignmentMessage assignment = new AssignmentMessage(
() -> entry.getSmLogEntry().getData());
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/237be5d1/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
----------------------------------------------------------------------
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 88cf240..0f8e692 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
@@ -435,10 +435,9 @@ public class RaftServerImpl implements RaftServerProtocol,
// later which means that any failure in between will leave partial state in
// the state machine. We should call cancelTransaction() for failed requests
TransactionContext context = stateMachine.startTransaction(request);
- if (context.getException().isPresent()) {
+ if (context.getException() != null) {
RaftClientReply exceptionReply = new RaftClientReply(request,
- new StateMachineException(getId().toString(),
- context.getException().get()));
+ new StateMachineException(getId().toString(), context.getException()));
cacheEntry.failWithReply(exceptionReply);
return CompletableFuture.completedFuture(exceptionReply);
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/237be5d1/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftLog.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftLog.java b/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftLog.java
index 8b60f2d..ee765c1 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftLog.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/storage/RaftLog.java
@@ -141,7 +141,7 @@ public abstract class RaftLog implements Closeable {
// build the log entry after calling the StateMachine
final LogEntryProto e = ProtoUtils.toLogEntryProto(
- operation.getSMLogEntry().get(), term, nextIndex, clientId, callId);
+ operation.getSMLogEntry(), term, nextIndex, clientId, callId);
appendEntry(e);
operation.setLogEntry(e);
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/237be5d1/ratis-server/src/main/java/org/apache/ratis/statemachine/BaseStateMachine.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/statemachine/BaseStateMachine.java b/ratis-server/src/main/java/org/apache/ratis/statemachine/BaseStateMachine.java
index 9a0e999..d35dc88 100644
--- a/ratis-server/src/main/java/org/apache/ratis/statemachine/BaseStateMachine.java
+++ b/ratis-server/src/main/java/org/apache/ratis/statemachine/BaseStateMachine.java
@@ -93,7 +93,7 @@ public class BaseStateMachine implements StateMachine {
@Override
public CompletableFuture<Message> applyTransaction(TransactionContext trx) {
// return the same message contained in the entry
- Message msg = () -> trx.getLogEntry().get().getSmLogEntry().getData();
+ Message msg = () -> trx.getLogEntry().getSmLogEntry().getData();
return CompletableFuture.completedFuture(msg);
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/237be5d1/ratis-server/src/main/java/org/apache/ratis/statemachine/TransactionContext.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/main/java/org/apache/ratis/statemachine/TransactionContext.java b/ratis-server/src/main/java/org/apache/ratis/statemachine/TransactionContext.java
index 81bea45..3a6adfc 100644
--- a/ratis-server/src/main/java/org/apache/ratis/statemachine/TransactionContext.java
+++ b/ratis-server/src/main/java/org/apache/ratis/statemachine/TransactionContext.java
@@ -49,13 +49,13 @@ public class TransactionContext {
private final StateMachine stateMachine;
/** Original request from the client */
- private Optional<RaftClientRequest> clientRequest = Optional.empty();
+ private RaftClientRequest clientRequest;
/** Exception from the {@link StateMachine} or from the log */
- private Optional<Exception> exception = Optional.empty();
+ private Exception exception;
/** Data from the {@link StateMachine} */
- private Optional<SMLogEntryProto> smLogEntryProto = Optional.empty();
+ private SMLogEntryProto smLogEntryProto;
/**
* Context specific to the state machine.
@@ -63,7 +63,7 @@ public class TransactionContext {
* {@link StateMachine#startTransaction(RaftClientRequest)} and
* {@link StateMachine#applyTransaction(TransactionContext)}.
*/
- private Optional<Object> stateMachineContext = Optional.empty();
+ private Object stateMachineContext;
/**
* Whether to commit the transaction to the RAFT Log.
@@ -73,7 +73,7 @@ public class TransactionContext {
private boolean shouldCommit = true;
/** Committed LogEntry. */
- private Optional<LogEntryProto> logEntry = Optional.empty();
+ private LogEntryProto logEntry;
private TransactionContext(StateMachine stateMachine) {
this.stateMachine = stateMachine;
@@ -96,9 +96,9 @@ public class TransactionContext {
StateMachine stateMachine, RaftClientRequest clientRequest,
SMLogEntryProto smLogEntryProto, Object stateMachineContext) {
this(stateMachine);
- this.clientRequest = Optional.of(clientRequest);
- this.smLogEntryProto = Optional.ofNullable(smLogEntryProto);
- this.stateMachineContext = Optional.ofNullable(stateMachineContext);
+ this.clientRequest = clientRequest;
+ this.smLogEntryProto = smLogEntryProto;
+ this.stateMachineContext = stateMachineContext;
}
/** The same as this(stateMachine, clientRequest, exception, null). */
@@ -117,9 +117,9 @@ public class TransactionContext {
StateMachine stateMachine, RaftClientRequest clientRequest,
Exception exception, Object stateMachineContext) {
this(stateMachine);
- this.clientRequest = Optional.of(clientRequest);
- this.exception = Optional.of(exception);
- this.stateMachineContext = Optional.ofNullable(stateMachineContext);
+ this.clientRequest = clientRequest;
+ this.exception = exception;
+ this.stateMachineContext = stateMachineContext;
}
/**
@@ -129,48 +129,48 @@ public class TransactionContext {
*/
public TransactionContext(StateMachine stateMachine, LogEntryProto logEntry) {
this(stateMachine);
- this.smLogEntryProto = Optional.of(logEntry.getSmLogEntry());
- this.logEntry = Optional.of(logEntry);
+ this.smLogEntryProto = logEntry.getSmLogEntry();
+ this.logEntry = logEntry;
}
- public Optional<RaftClientRequest> getClientRequest() {
- return this.clientRequest;
+ public RaftClientRequest getClientRequest() {
+ return clientRequest;
}
- public Optional<SMLogEntryProto> getSMLogEntry() {
- return this.smLogEntryProto;
+ public SMLogEntryProto getSMLogEntry() {
+ return smLogEntryProto;
}
- public Optional<Exception> getException() {
- return this.exception;
+ public Exception getException() {
+ return exception;
}
public TransactionContext setStateMachineContext(Object stateMachineContext) {
- this.stateMachineContext = Optional.ofNullable(stateMachineContext);
+ this.stateMachineContext = stateMachineContext;
return this;
}
- public Optional<Object> getStateMachineContext() {
+ public Object getStateMachineContext() {
return stateMachineContext;
}
public TransactionContext setLogEntry(LogEntryProto logEntry) {
- this.logEntry = Optional.of(logEntry);
+ this.logEntry = logEntry;
return this;
}
public TransactionContext setSmLogEntryProto(SMLogEntryProto smLogEntryProto) {
- this.smLogEntryProto = Optional.of(smLogEntryProto);
+ this.smLogEntryProto = smLogEntryProto;
return this;
}
- public Optional<LogEntryProto> getLogEntry() {
+ public LogEntryProto getLogEntry() {
return logEntry;
}
private TransactionContext setException(IOException ioe) {
- assert !this.exception.isPresent();
- this.exception = Optional.of(ioe);
+ assert exception != null;
+ this.exception = ioe;
return this;
}
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/237be5d1/ratis-server/src/test/java/org/apache/ratis/statemachine/SimpleStateMachine4Testing.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/statemachine/SimpleStateMachine4Testing.java b/ratis-server/src/test/java/org/apache/ratis/statemachine/SimpleStateMachine4Testing.java
index 4ecc282..a0c4f45 100644
--- a/ratis-server/src/test/java/org/apache/ratis/statemachine/SimpleStateMachine4Testing.java
+++ b/ratis-server/src/test/java/org/apache/ratis/statemachine/SimpleStateMachine4Testing.java
@@ -123,7 +123,7 @@ public class SimpleStateMachine4Testing extends BaseStateMachine {
@Override
public CompletableFuture<Message> applyTransaction(TransactionContext trx) {
- LogEntryProto entry = Objects.requireNonNull(trx.getLogEntry().get());
+ LogEntryProto entry = Objects.requireNonNull(trx.getLogEntry());
list.add(entry);
termIndexTracker.update(ServerProtoUtils.toTermIndex(entry));
return CompletableFuture.completedFuture(
http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/237be5d1/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
----------------------------------------------------------------------
diff --git a/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java b/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
index cf4880c..a5f2c07 100644
--- a/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
+++ b/ratis-server/src/test/java/org/apache/ratis/statemachine/TestStateMachine.java
@@ -121,19 +121,19 @@ public class TestStateMachine {
@Override
public CompletableFuture<Message> applyTransaction(TransactionContext trx) {
try {
- assertTrue(trx.getLogEntry().isPresent());
- assertTrue(trx.getSMLogEntry().isPresent());
- Optional<Object> context = trx.getStateMachineContext();
+ assertNotNull(trx.getLogEntry());
+ assertNotNull(trx.getSMLogEntry());
+ Object context = trx.getStateMachineContext();
if (isLeader.get()) {
- assertTrue(trx.getClientRequest().isPresent());
- assertTrue(context.isPresent());
- assertTrue(context.get() instanceof Long);
- Long val = (Long)context.get();
+ assertNotNull(trx.getClientRequest());
+ assertNotNull(context);
+ assertTrue(context instanceof Long);
+ Long val = (Long)context;
assertTrue(val <= transactions.get());
applied.add(val);
} else {
- assertFalse(trx.getClientRequest().isPresent());
- assertFalse(context.isPresent());
+ assertNull(trx.getClientRequest());
+ assertNull(context);
}
numApplied.incrementAndGet();
} catch (Throwable t) {