From ccf42acf70609e8086c3f46b5c18ca8f6c13117d Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Tue, 25 Sep 2007 23:04:08 +0000 Subject: [PATCH] HADOOP-1941 StopRowFilter throws NPE when passed null row git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk/src/contrib/hbase@579410 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 1 + src/java/org/apache/hadoop/hbase/filter/StopRowFilter.java | 6 ++++++ .../org/apache/hadoop/hbase/filter/TestStopRowFilter.java | 2 ++ 3 files changed, 9 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 9adba42546c..291671e0d8f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -61,6 +61,7 @@ Trunk (unreleased changes) HADOOP-1923, HADOOP-1924 a) tests fail sporadically because set up and tear down is inconsistent b) TestDFSAbort failed in nightly #242 HADOOP-1929 Add hbase-default.xml to hbase jar + HADOOP-1941 StopRowFilter throws NPE when passed null row IMPROVEMENTS HADOOP-1737 Make HColumnDescriptor data publically members settable diff --git a/src/java/org/apache/hadoop/hbase/filter/StopRowFilter.java b/src/java/org/apache/hadoop/hbase/filter/StopRowFilter.java index a3bc923df84..be638140097 100644 --- a/src/java/org/apache/hadoop/hbase/filter/StopRowFilter.java +++ b/src/java/org/apache/hadoop/hbase/filter/StopRowFilter.java @@ -98,6 +98,12 @@ public class StopRowFilter implements RowFilterInterface { /** {@inheritDoc} */ public boolean filter(final Text rowKey) { + if (rowKey == null) { + if (this.stopRowKey == null) { + return true; + } + return false; + } boolean result = this.stopRowKey.compareTo(rowKey) <= 0; if (LOG.isDebugEnabled()) { LOG.debug("Filter result for rowKey: " + rowKey + ". Result: " + diff --git a/src/test/org/apache/hadoop/hbase/filter/TestStopRowFilter.java b/src/test/org/apache/hadoop/hbase/filter/TestStopRowFilter.java index be56612d6fd..dc5b8677413 100644 --- a/src/test/org/apache/hadoop/hbase/filter/TestStopRowFilter.java +++ b/src/test/org/apache/hadoop/hbase/filter/TestStopRowFilter.java @@ -87,5 +87,7 @@ public class TestStopRowFilter extends TestCase { assertFalse("FilterAllRemaining", filter.filterAllRemaining()); assertFalse("FilterNotNull", filter.filterNotNull(null)); + + assertFalse("Filter a null", filter.filter(null)); } }