HDDS-433. ContainerStateMachine#readStateMachineData should properly build LogEntryProto. Contributed by Lokesh Jain.

(cherry picked from commit 47299ce23f)
This commit is contained in:
Mukul Kumar Singh 2018-09-12 18:30:53 +05:30 committed by Márton Elek
parent 22c318eeee
commit 7f5382483e
1 changed files with 7 additions and 7 deletions

View File

@ -268,7 +268,7 @@ public class ContainerStateMachine extends BaseStateMachine {
} }
} }
private LogEntryProto readStateMachineData(SMLogEntryProto smLogEntryProto, private LogEntryProto readStateMachineData(LogEntryProto entry,
ContainerCommandRequestProto requestProto) { ContainerCommandRequestProto requestProto) {
WriteChunkRequestProto writeChunkRequestProto = WriteChunkRequestProto writeChunkRequestProto =
requestProto.getWriteChunk(); requestProto.getWriteChunk();
@ -307,18 +307,18 @@ public class ContainerStateMachine extends BaseStateMachine {
ContainerCommandRequestProto.newBuilder(requestProto) ContainerCommandRequestProto.newBuilder(requestProto)
.setWriteChunk(dataWriteChunkProto); .setWriteChunk(dataWriteChunkProto);
return recreateLogEntryProto(smLogEntryProto, return recreateLogEntryProto(entry,
newStateMachineProto.build().toByteString()); newStateMachineProto.build().toByteString());
} }
private LogEntryProto recreateLogEntryProto(SMLogEntryProto smLogEntryProto, private LogEntryProto recreateLogEntryProto(LogEntryProto entry,
ByteString stateMachineData) { ByteString stateMachineData) {
// recreate the log entry // recreate the log entry
final SMLogEntryProto log = final SMLogEntryProto log =
SMLogEntryProto.newBuilder(smLogEntryProto) SMLogEntryProto.newBuilder(entry.getSmLogEntry())
.setStateMachineData(stateMachineData) .setStateMachineData(stateMachineData)
.build(); .build();
return LogEntryProto.newBuilder().setSmLogEntry(log).build(); return LogEntryProto.newBuilder(entry).setSmLogEntry(log).build();
} }
/** /**
@ -360,11 +360,11 @@ public class ContainerStateMachine extends BaseStateMachine {
if (requestProto.getCmdType() == Type.WriteChunk) { if (requestProto.getCmdType() == Type.WriteChunk) {
return CompletableFuture.supplyAsync(() -> return CompletableFuture.supplyAsync(() ->
readStateMachineData(smLogEntryProto, requestProto), readStateMachineData(entry, requestProto),
chunkExecutor); chunkExecutor);
} else if (requestProto.getCmdType() == Type.CreateContainer) { } else if (requestProto.getCmdType() == Type.CreateContainer) {
LogEntryProto log = LogEntryProto log =
recreateLogEntryProto(smLogEntryProto, requestProto.toByteString()); recreateLogEntryProto(entry, requestProto.toByteString());
return CompletableFuture.completedFuture(log); return CompletableFuture.completedFuture(log);
} else { } else {
throw new IllegalStateException("Cmd type:" + requestProto.getCmdType() throw new IllegalStateException("Cmd type:" + requestProto.getCmdType()