[ 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