Reset snapshot progress after timeout has been hit
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / test / java / org / opendaylight / controller / cluster / raft / utils / InMemoryJournal.java
index 8c6cf0945713ed0cbae3d5f7fbb2870220985dc5..90aff5b72616e9d85abfb3786f28aa5f6345bcbe 100644 (file)
@@ -12,12 +12,11 @@ import akka.persistence.AtomicWrite;
 import akka.persistence.PersistentImpl;
 import akka.persistence.PersistentRepr;
 import akka.persistence.journal.japi.AsyncWriteJournal;
-import com.google.common.collect.Maps;
 import com.google.common.util.concurrent.Uninterruptibles;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
@@ -62,11 +61,7 @@ public class InMemoryJournal extends AsyncWriteJournal {
     }
 
     public static void addEntry(String persistenceId, long sequenceNr, Object data) {
-        Map<Long, Object> journal = JOURNALS.get(persistenceId);
-        if (journal == null) {
-            journal = Maps.newLinkedHashMap();
-            JOURNALS.put(persistenceId, journal);
-        }
+        Map<Long, Object> journal = JOURNALS.computeIfAbsent(persistenceId, k -> new LinkedHashMap<>());
 
         synchronized (journal) {
             journal.put(sequenceNr, data instanceof Serializable
@@ -76,6 +71,9 @@ public class InMemoryJournal extends AsyncWriteJournal {
 
     public static void clear() {
         JOURNALS.clear();
+        DELETE_MESSAGES_COMPLETE_LATCHES.clear();
+        WRITE_MESSAGES_COMPLETE.clear();
+        BLOCK_READ_MESSAGES_LATCHES.clear();
     }
 
     @SuppressWarnings("unchecked")
@@ -233,13 +231,7 @@ public class InMemoryJournal extends AsyncWriteJournal {
         Map<Long, Object> journal = JOURNALS.get(persistenceId);
         if (journal != null) {
             synchronized (journal) {
-                Iterator<Long> iter = journal.keySet().iterator();
-                while (iter.hasNext()) {
-                    Long num = iter.next();
-                    if (num <= toSequenceNr) {
-                        iter.remove();
-                    }
-                }
+                journal.keySet().removeIf(num -> num <= toSequenceNr);
             }
         }