Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-10064

AggregateClient.validateParameters can throw NPE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.94.14
    • 0.94.15
    • Client
    • None
    • Reviewed

    Description

      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 :

        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.");
          }
        }
      

      “Bytes.equals(scan.getStartRow(), HConstants.EMPTY_START_ROW)” will throw NullPointerException if the startRow of scan is set to null.

      Attachments

        1. HBASE-10064-0.94-v1.patch
          2 kB
          Jianwei Cui
        2. HBASE-10064-0.94-v2.patch
          1 kB
          Jianwei Cui
        3. 10064-0.94.patch
          0.7 kB
          Andrew Kyle Purtell

        Activity

          People

            cuijianwei Jianwei Cui
            cuijianwei Jianwei Cui
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: