Initial code for RaftActorServerConfigurationSupport
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / test / java / org / opendaylight / controller / cluster / raft / utils / InMemoryJournal.java
index 0e2449e4b8e62d7d8cd4af3d4bd33407136460e2..e1af7db7ee401351191d98ac0e7f778a3baf9ab5 100644 (file)
@@ -139,8 +139,8 @@ public class InMemoryJournal extends AsyncWriteJournal {
     }
 
     @Override
-    public Future<Void> doAsyncReplayMessages(final String persistenceId, long fromSequenceNr,
-            long toSequenceNr, long max, final Procedure<PersistentRepr> replayCallback) {
+    public Future<Void> doAsyncReplayMessages(final String persistenceId, final long fromSequenceNr,
+            final long toSequenceNr, long max, final Procedure<PersistentRepr> replayCallback) {
         return Futures.future(new Callable<Void>() {
             @Override
             public Void call() throws Exception {
@@ -150,16 +150,18 @@ public class InMemoryJournal extends AsyncWriteJournal {
                 }
 
                 Map<Long, Object> journal = journals.get(persistenceId);
-                if(journal == null) {
+                if (journal == null) {
                     return null;
                 }
 
                 synchronized (journal) {
                     for (Map.Entry<Long,Object> entry : journal.entrySet()) {
-                        PersistentRepr persistentMessage =
-                                new PersistentImpl(entry.getValue(), entry.getKey(), persistenceId,
-                                        false, null, null);
-                        replayCallback.apply(persistentMessage);
+                        if (entry.getKey() >= fromSequenceNr && entry.getKey() <= toSequenceNr) {
+                            PersistentRepr persistentMessage =
+                                    new PersistentImpl(entry.getValue(), entry.getKey(), persistenceId,
+                                            false, null, null);
+                            replayCallback.apply(persistentMessage);
+                        }
                     }
                 }
 
@@ -171,10 +173,9 @@ public class InMemoryJournal extends AsyncWriteJournal {
     @Override
     public Future<Long> doAsyncReadHighestSequenceNr(String persistenceId, long fromSequenceNr) {
         // Akka calls this during recovery.
-
         Map<Long, Object> journal = journals.get(persistenceId);
         if(journal == null) {
-            return Futures.successful(-1L);
+            return Futures.successful(fromSequenceNr);
         }
 
         synchronized (journal) {