+
+ if(dataRecoveredWithPersistenceDisabled) {
+ // Data persistence is disabled but we recovered some data entries so we must have just
+ // transitioned to disabled or a persistence backup was restored. Either way, delete all the
+ // messages from the akka journal for efficiency and so that we do not end up with consistency
+ // issues in case persistence is -re-enabled.
+ persistentProvider.deleteMessages(persistentProvider.getLastSequenceNumber());
+
+ // Delete all the akka snapshots as they will not be needed
+ persistentProvider.deleteSnapshots(new SnapshotSelectionCriteria(scala.Long.MaxValue(),
+ scala.Long.MaxValue()));
+
+ // Since we cleaned out the journal, we need to re-write the current election info.
+ context.getTermInformation().updateAndPersist(context.getTermInformation().getCurrentTerm(),
+ context.getTermInformation().getVotedFor());
+ }
+
+ possiblyRestoreFromSnapshot();
+ } else {
+ boolean isServerConfigPayload = false;
+ if(message instanceof ReplicatedLogEntry){
+ ReplicatedLogEntry repLogEntry = (ReplicatedLogEntry)message;
+ if(isServerConfigurationPayload(repLogEntry)){
+ isServerConfigPayload = true;
+ context.updatePeerIds((ServerConfigurationPayload)repLogEntry.getData());
+ }
+ }
+
+ if(!isServerConfigPayload){
+ dataRecoveredWithPersistenceDisabled = true;
+ }