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

ramkrishna.s.vasudevan commented on HBASE-6047:
-----------------------------------------------

@Alex
The hudson has taken up the patch and it is available in the versions where 
ever the patch has gone in.
There are some test case failures caused in the build due to which the hudson 
says it has failed in creating a build.  May be you can just cross check from 
the build report whether your patch has caused any failures. 
                
> Put.has() can't determine result correctly
> ------------------------------------------
>
>                 Key: HBASE-6047
>                 URL: https://issues.apache.org/jira/browse/HBASE-6047
>             Project: HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.92.1
>            Reporter: Wang Qiang
>            Assignee: Alex Newman
>             Fix For: 0.92.2, 0.96.0, 0.94.1
>
>         Attachments: 
> 0001-HBASE-6047.-Put.has-can-t-determine-result-correctly-v2.patch, 
> 0001-HBASE-6047.-Put.has-can-t-determine-result-correctly.patch, 6047-92.txt, 
> PutTest.java
>
>
> the public method 'has(byte [] family, byte [] qualifier)' internally invoked 
> the private method 'has(byte [] family, byte [] qualifier, long ts, byte [] 
> value, boolean ignoreTS, boolean ignoreValue)' with 'value=new byte[0], 
> ignoreTS=true, ignoreValue=true', but there's a logical error in the body, 
> it'll enter the block
> {code}
> else if (ignoreValue) {
>       for (KeyValue kv: list) {
>         if (Arrays.equals(kv.getFamily(), family) && 
> Arrays.equals(kv.getQualifier(), qualifier)
>             && kv.getTimestamp() == ts) {
>           return true;
>         }
>       }
>     }
> {code}
> the expression 'kv.getTimestamp() == ts' in the if conditions should only 
> exist when 'ignoreTS=false', otherwise, the following code will return false!
> {code}
> Put put = new Put(Bytes.toBytes("row-01"));
> put.add(Bytes.toBytes("family-01"), Bytes.toBytes("qualifier-01"),
>                               1234567L, Bytes.toBytes("value-01"));
> System.out.println(put.has(Bytes.toBytes("family-01"),
>                               Bytes.toBytes("qualifier-01")));
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to