From 9995c1a7edf72e3957a5aed861610cd29e48db9b Mon Sep 17 00:00:00 2001 From: Tim Brooks Date: Mon, 26 Jun 2023 18:34:13 -0600 Subject: [PATCH] Do not throw EOF exception on checksum stream read Currently BufferedChecksumStreamInput#read will throw EOFException because it delegates to #readByte(). However, when the end of stream has been reached for #read() this method should return -1. --- .../index/translog/BufferedChecksumStreamInput.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/index/translog/BufferedChecksumStreamInput.java b/server/src/main/java/org/elasticsearch/index/translog/BufferedChecksumStreamInput.java index 67f3b463834f7..ea03ea62617c5 100644 --- a/server/src/main/java/org/elasticsearch/index/translog/BufferedChecksumStreamInput.java +++ b/server/src/main/java/org/elasticsearch/index/translog/BufferedChecksumStreamInput.java @@ -13,6 +13,7 @@ import org.elasticsearch.common.io.stream.FilterStreamInput; import org.elasticsearch.common.io.stream.StreamInput; +import java.io.EOFException; import java.io.IOException; import java.util.zip.CRC32; import java.util.zip.Checksum; @@ -101,7 +102,11 @@ public void reset() throws IOException { @Override public int read() throws IOException { - return readByte() & 0xFF; + try { + return readByte() & 0xFF; + } catch (EOFException e) { + return -1; + } } @Override