Remove JournalReader.getCurrentEntry()
[controller.git] / atomix-storage / src / main / java / io / atomix / storage / journal / SegmentedJournalReader.java
index 42f40e0c72f92bee28de27905b27feac2074a8cb..0a137090d88201a60b6034f936f3747b39821d86 100644 (file)
@@ -26,7 +26,6 @@ sealed class SegmentedJournalReader<E> implements JournalReader<E> permits Commi
 
     private JournalSegment currentSegment;
     private JournalSegmentReader currentReader;
-    private Indexed<E> currentEntry;
     private long nextIndex;
 
     SegmentedJournalReader(final SegmentedJournal<E> journal, final JournalSegment segment) {
@@ -34,7 +33,6 @@ sealed class SegmentedJournalReader<E> implements JournalReader<E> permits Commi
         currentSegment = requireNonNull(segment);
         currentReader = segment.createReader();
         nextIndex = currentSegment.firstIndex();
-        currentEntry = null;
     }
 
     @Override
@@ -42,11 +40,6 @@ sealed class SegmentedJournalReader<E> implements JournalReader<E> permits Commi
         return journal.getFirstSegment().firstIndex();
     }
 
-    @Override
-    public final Indexed<E> getCurrentEntry() {
-        return currentEntry;
-    }
-
     @Override
     public final long getNextIndex() {
         return nextIndex;
@@ -59,7 +52,6 @@ sealed class SegmentedJournalReader<E> implements JournalReader<E> permits Commi
         currentSegment = journal.getFirstSegment();
         currentReader = currentSegment.createReader();
         nextIndex = currentSegment.firstIndex();
-        currentEntry = null;
     }
 
     @Override
@@ -113,10 +105,11 @@ sealed class SegmentedJournalReader<E> implements JournalReader<E> permits Commi
 
     @Override
     public Indexed<E> tryNext() {
-        var buf = currentReader.readBytes(nextIndex);
+        final var index = nextIndex;
+        var buf = currentReader.readBytes(index);
         if (buf == null) {
             final var nextSegment = journal.getNextSegment(currentSegment.firstIndex());
-            if (nextSegment == null || nextSegment.firstIndex() != nextIndex) {
+            if (nextSegment == null || nextSegment.firstIndex() != index) {
                 return null;
             }
 
@@ -124,15 +117,15 @@ sealed class SegmentedJournalReader<E> implements JournalReader<E> permits Commi
 
             currentSegment = nextSegment;
             currentReader = currentSegment.createReader();
-            buf = currentReader.readBytes(nextIndex);
+            buf = currentReader.readBytes(index);
             if (buf == null) {
                 return null;
             }
         }
 
         final var entry = journal.serializer().deserialize(buf);
-        currentEntry = new Indexed<>(nextIndex++, entry, buf.readableBytes());
-        return currentEntry;
+        nextIndex = index + 1;
+        return new Indexed<>(index, entry, buf.readableBytes());
     }
 
     @Override