[ 
https://issues.apache.org/jira/browse/HBASE-10064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13841557#comment-13841557
 ] 

Hudson commented on HBASE-10064:
--------------------------------

SUCCESS: Integrated in HBase-0.94-security #353 (See 
[https://builds.apache.org/job/HBase-0.94-security/353/])
HBASE-10064. AggregateClient.validateParameters can throw NPE (cuijianwei) 
(apurtell: rev 1548416)
* /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/Scan.java


> 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)

Reply via email to