Do not use BufferOverflowException for EOF signalling 84/111084/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Mar 2024 23:20:26 +0000 (00:20 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 27 Mar 2024 00:15:46 +0000 (01:15 +0100)
commit67b69d39102b1bb2b057ef08d5406c9200012d8e
treee917689727d72c8a14ff423bc920c0381c9946ba
parentfd9dfdc05c75e078b2d4c65d48dd48fdf10b8fe4
Do not use BufferOverflowException for EOF signalling

A neat benefit of well-structured code is that it makes it clear what
the contracts are.

In this patch we eliminate a source of BufferOverflowExceptions and opt
to report the fact next segment is needed via a @Nullable return.

JIRA: CONTROLLER-2100
Change-Id: I1b9535053561709dc2a4b60446cd7cabd19da659
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentWriter.java
atomix-storage/src/main/java/io/atomix/storage/journal/JournalWriter.java
atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournalWriter.java
atomix-storage/src/main/java/io/atomix/storage/journal/StorageException.java