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)

Reply via email to