From a3f0e059adb6b9380eb4c21ab75c2c84a85aeba3 Mon Sep 17 00:00:00 2001 From: Josh Elser Date: Fri, 15 Feb 2019 15:59:30 -0500 Subject: [PATCH] HBASE-21915 Make FileLinkInputStream implement CanUnbuffer --- .../java/org/apache/hadoop/hbase/io/FileLink.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/FileLink.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/FileLink.java index 42f3483648..06759df327 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/FileLink.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/FileLink.java @@ -31,6 +31,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.hadoop.fs.CanSetDropBehind; import org.apache.hadoop.fs.CanSetReadahead; +import org.apache.hadoop.fs.CanUnbuffer; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.FileStatus; @@ -102,7 +103,7 @@ public class FileLink { * and the alternative locations, when the file is moved. */ private static class FileLinkInputStream extends InputStream - implements Seekable, PositionedReadable, CanSetDropBehind, CanSetReadahead { + implements Seekable, PositionedReadable, CanSetDropBehind, CanSetReadahead, CanUnbuffer { private FSDataInputStream in = null; private Path currentPath = null; private long pos = 0; @@ -281,6 +282,16 @@ public class FileLink { return false; } + @Override + public void unbuffer() { + try { + tryOpen().unbuffer(); + } catch (IOException e) { + // What else can we do if we get an IOException from tryOpen? + throw new RuntimeException(e); + } + } + /** * Try to open the file from one of the available locations. * -- 2.18.0