[
https://issues.apache.org/jira/browse/HBASE-16498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15438553#comment-15438553
]
Hiroshi Ikeda commented on HBASE-16498:
---------------------------------------
In general the behavior is undefined when passing a null argument unless there
is an explicit comment about what the null means.
I would prefer adding a contract of throwing NPE at constructor and setters in
Scan :P
Anyway it is better to set the null-objects (EMPTY_START_ROW, EMPTY_END_ROW) to
the fields at constructor and setters if any, instead of null checking every
time you get.
> NPE when Scan's stopRow is set NULL
> -----------------------------------
>
> Key: HBASE-16498
> URL: https://issues.apache.org/jira/browse/HBASE-16498
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 2.0.0, 1.3.0, 1.4.0, 1.1.6, 1.2.3
> Reporter: Pankaj Kumar
> Assignee: Pankaj Kumar
> Priority: Minor
> Attachments: HBASE-16498-V2.patch, HBASE-16498.patch
>
>
> During scan operation we validate whether this is the last region of table,
> if not then records will be retrieved from nextscanner. If stop row is set
> null then NPE will be thrown while validating stop row with region endkey.
> {noformat}
> java.lang.NullPointerException
> at
> org.apache.hadoop.hbase.client.ClientScanner.checkScanStopRow(ClientScanner.java:217)
> at
> org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:266)
> at
> org.apache.hadoop.hbase.client.ClientScanner.possiblyNextScanner(ClientScanner.java:237)
> at
> org.apache.hadoop.hbase.client.ClientScanner.loadCache(ClientScanner.java:537)
> at
> org.apache.hadoop.hbase.client.ClientScanner.nextWithSyncCache(ClientScanner.java:363)
> at
> org.apache.hadoop.hbase.client.ClientSimpleScanner.next(ClientSimpleScanner.java:50)
> at
> org.apache.hadoop.hbase.client.AbstractClientScanner.next(AbstractClientScanner.java:70)
> at
> org.apache.hadoop.hbase.client.TestAdmin2.testScanWithSplitKeysAndNullStartEndRow(TestAdmin2.java:803)
> {noformat}
> We should return empty byte array when start/end row is set NULL.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)