[
https://issues.apache.org/jira/browse/HBASE-10064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Purtell resolved HBASE-10064.
------------------------------------
Resolution: Fixed
Fix Version/s: 0.94.15
Assignee: cuijianwei
Hadoop Flags: Reviewed
> AggregateClient.validateParameters can throw NPE
> ------------------------------------------------
>
> Key: HBASE-10064
> URL: https://issues.apache.org/jira/browse/HBASE-10064
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 0.94.14
> Reporter: cuijianwei
> Assignee: cuijianwei
> Fix For: 0.94.15
>
> Attachments: 10064-0.94.patch, HBASE-10064-0.94-v1.patch,
> HBASE-10064-0.94-v2.patch
>
>
> When using methods such as max(...), min(...) in AggregationClient, we will
> pass Scan as parameter. These methods will throw NullPointerException if
> users invoke scan.setStartRow(null) or scan.setStopRow(null) before passing
> the scan as parameter. The NullPointerException is thrown by
> validateParameters(Scan scan) which will be invoked before sending requests
> to server. The implementation of validateParameters is :
> {code}
> private void validateParameters(Scan scan) throws IOException {
> if (scan == null
> || (Bytes.equals(scan.getStartRow(), scan.getStopRow()) && !Bytes
> .equals(scan.getStartRow(), HConstants.EMPTY_START_ROW))
> || ((Bytes.compareTo(scan.getStartRow(), scan.getStopRow()) > 0) &&
> !Bytes.equals(scan.getStopRow(), HConstants.EMPTY_END_ROW))) {
> throw new IOException(
> "Agg client Exception: Startrow should be smaller than Stoprow");
> } else if (scan.getFamilyMap().size() != 1) {
> throw new IOException("There must be only one family.");
> }
> }
> {code}
> “Bytes.equals(scan.getStartRow(), HConstants.EMPTY_START_ROW)” will throw
> NullPointerException if the startRow of scan is set to null.
--
This message was sent by Atlassian JIRA
(v6.1#6144)