cuijianwei created HBASE-10064:
----------------------------------
Summary: AggregateClient.validateParameters will throw
NullPointerException when set startRow/stopRow of scan to null
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
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)