+ final FiniteDuration timeout =
+ getSnapshot.getTimeout().map(Timeout::duration).orElse(snapshotReplyActorTimeout);
+
+ ActorRef snapshotReplyActor = context.actorOf(GetSnapshotReplyActor.props(captureSnapshot,
+ ImmutableElectionTerm.copyOf(context.getTermInformation()), sender, timeout, context.getId(),
+ context.getPeerServerInfo(true)));
+
+ cohort.createSnapshot(snapshotReplyActor, Optional.empty());
+ } else {
+ Snapshot snapshot = Snapshot.create(
+ EmptyState.INSTANCE, Collections.<ReplicatedLogEntry>emptyList(),
+ -1, -1, -1, -1,
+ context.getTermInformation().getCurrentTerm(), context.getTermInformation().getVotedFor(),
+ context.getPeerServerInfo(true));
+
+ sender.tell(new GetSnapshotReply(context.getId(), snapshot), context.getActor());
+ }
+ }