Make JournalSegmentWriter.getLastIndex() final 45/110745/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 15 Mar 2024 10:05:21 +0000 (11:05 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 15 Mar 2024 10:12:43 +0000 (11:12 +0100)
We have duplicated code between the two implementations. Centralize it
to the common superclass.

JIRA: CONTROLLER-2098
Change-Id: I805e882566d8f891c23a1f25143d453c94284cd1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
atomix-storage/src/main/java/io/atomix/storage/journal/FileChannelJournalSegmentWriter.java
atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentWriter.java
atomix-storage/src/main/java/io/atomix/storage/journal/MappedJournalSegmentWriter.java

index ec4d4a6dbb7883f6fec15b7e5f326623cacf640b..5f146c7f8611f41c3960de8af284d401ee93861a 100644 (file)
@@ -146,11 +146,6 @@ final class FileChannelJournalSegmentWriter<E> extends JournalSegmentWriter<E> {
     }
   }
 
-  @Override
-  long getLastIndex() {
-    return lastEntry != null ? lastEntry.index() : firstIndex - 1;
-  }
-
   @Override
   Indexed<E> getLastEntry() {
     return lastEntry;
index 6996906c7b424efed9485d5d94c6bf9c7e7a442f..8ddaaae3c62acc57d517adb5d9b43cab97d89efa 100644 (file)
@@ -55,7 +55,10 @@ abstract sealed class JournalSegmentWriter<E> permits FileChannelJournalSegmentW
      *
      * @return The last written index.
      */
-    abstract long getLastIndex();
+    final long getLastIndex() {
+        final Indexed<?> lastEntry;
+        return (lastEntry = getLastEntry()) != null ? lastEntry.index() : firstIndex - 1;
+    }
 
     /**
      * Returns the last entry written.
index 18aba4879e042a72b34b5b37a133e7d1e69830fe..ffc45dcfe75c3d5d4969b81b910b53f0de00014d 100644 (file)
@@ -149,11 +149,6 @@ final class MappedJournalSegmentWriter<E> extends JournalSegmentWriter<E> {
     }
   }
 
-  @Override
-  long getLastIndex() {
-    return lastEntry != null ? lastEntry.index() : firstIndex - 1;
-  }
-
   @Override
   Indexed<E> getLastEntry() {
     return lastEntry;