Simplify JournalSegmentReader entry access
[controller.git] / atomix-storage / src / main / java / io / atomix / storage / journal / SegmentedJournalReader.java
index 3f5d3f9e4fbe15ab476d9c952ea74da9f1504b65..50270442e79226e46334c1abcff9e335efe7384f 100644 (file)
@@ -118,9 +118,11 @@ sealed class SegmentedJournalReader<E> implements JournalReader<E> permits Commi
 
   @Override
   public Indexed<E> tryNext() {
-    if (currentReader.hasNext()) {
-      previousEntry = currentReader.getCurrentEntry();
-      return currentReader.next();
+    final var current = currentReader.getCurrentEntry();
+    final var next = currentReader.tryNext();
+    if (next != null) {
+      previousEntry = current;
+      return next;
     }
 
     final var nextSegment = journal.getNextSegment(currentSegment.index());
@@ -133,7 +135,7 @@ sealed class SegmentedJournalReader<E> implements JournalReader<E> permits Commi
 
     currentSegment = nextSegment;
     currentReader = currentSegment.createReader();
-    return currentReader.hasNext() ? currentReader.next() : null;
+    return currentReader.tryNext();
   }
 
   @Override