From c0593e7a13b6c0bdb35c944e3ed67a79f3ce9b9b Mon Sep 17 00:00:00 2001 From: eisig Date: Tue, 16 Jul 2019 04:25:55 +0800 Subject: [PATCH] fix HoodieLogFileReader (#787) --- .../common/table/log/HoodieLogFileReader.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/hoodie-common/src/main/java/com/uber/hoodie/common/table/log/HoodieLogFileReader.java b/hoodie-common/src/main/java/com/uber/hoodie/common/table/log/HoodieLogFileReader.java index d062cc181..70afe2208 100644 --- a/hoodie-common/src/main/java/com/uber/hoodie/common/table/log/HoodieLogFileReader.java +++ b/hoodie-common/src/main/java/com/uber/hoodie/common/table/log/HoodieLogFileReader.java @@ -67,9 +67,17 @@ class HoodieLogFileReader implements HoodieLogFormat.Reader { HoodieLogFileReader(FileSystem fs, HoodieLogFile logFile, Schema readerSchema, int bufferSize, boolean readBlockLazily, boolean reverseReader) throws IOException { - this.inputStream = new FSDataInputStream( - new BufferedFSInputStream((FSInputStream) fs.open(logFile.getPath(), bufferSize).getWrappedStream(), - bufferSize)); + FSDataInputStream fsDataInputStream = fs.open(logFile.getPath(), bufferSize); + if (fsDataInputStream.getWrappedStream() instanceof FSInputStream) { + this.inputStream = new FSDataInputStream( + new BufferedFSInputStream((FSInputStream) fsDataInputStream.getWrappedStream(), + bufferSize)); + } else { + // fsDataInputStream.getWrappedStream() maybe a BufferedFSInputStream + // need to wrap in another BufferedFSInputStream the make bufferSize work? + this.inputStream = fsDataInputStream; + } + this.logFile = logFile; this.readerSchema = readerSchema; this.readBlockLazily = readBlockLazily;