From 332575fa228dfe105e4e7b332e4a63f68752d1cc Mon Sep 17 00:00:00 2001 From: virajjasani <34790606+virajjasani@users.noreply.github.com> Date: Fri, 7 Jun 2019 04:13:36 +0530 Subject: [PATCH] =?UTF-8?q?HBASE-22520=20Avoid=20possible=20NPE=20while=20?= =?UTF-8?q?performing=20seekBefore=20in=20Hal=E2=80=A6=20(#281)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HBASE-22520 Avoid possible NPE while performing seekBefore in HalfStoreFileReader --- .../org/apache/hadoop/hbase/io/HalfStoreFileReader.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java index 2e112c13959..11ab068ef3d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java @@ -60,9 +60,9 @@ public class HalfStoreFileReader extends StoreFileReader { // i.e. empty column and a timestamp of LATEST_TIMESTAMP. protected final byte [] splitkey; - protected final Cell splitCell; + private final Cell splitCell; - private Optional firstKey = null; + private Optional firstKey = Optional.empty(); private boolean firstKeySeeked = false; @@ -269,7 +269,8 @@ public class HalfStoreFileReader extends StoreFileReader { public boolean seekBefore(Cell key) throws IOException { if (top) { Optional fk = getFirstKey(); - if (PrivateCellUtil.compareKeyIgnoresMvcc(getComparator(), key, fk.get()) <= 0) { + if (fk.isPresent() && + PrivateCellUtil.compareKeyIgnoresMvcc(getComparator(), key, fk.get()) <= 0) { return false; } } else {