[ 
https://issues.apache.org/jira/browse/HBASE-9893?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nick Dimiduk updated HBASE-9893:
--------------------------------

    Attachment: HBASE-9893.00.patch

Excellent catch. Attached is a patch that also includes updated test cases. 
Please let me know if you have other value permutations you'd like to see 
tested. It'd be nice to have a more thorough test suite around this code, a la 
the suite Orderly has.

>From the commit message

{quote}
Correct an invalid assumption in remaining assertion code around 
OrderedBytes#decodeVarBlob. When an encoded value contains a 1-bit in its LSB 
position and the length of the encoded byte array is divisible by 7, the value 
remaining in variable t will be 0x80, resulting in the failed assertion coming 
out of the decoding loop. This patch preserves the assertion for the general 
case by resetting 't' at the conclusion of the 7-byte cycle.
{quote}

> Incorrect assert condition in OrderedBytes decoding
> ---------------------------------------------------
>
>                 Key: HBASE-9893
>                 URL: https://issues.apache.org/jira/browse/HBASE-9893
>             Project: HBase
>          Issue Type: Bug
>          Components: Client
>    Affects Versions: 0.96.0
>            Reporter: He Liangliang
>            Assignee: Nick Dimiduk
>            Priority: Minor
>         Attachments: HBASE-9893.00.patch, HBASE-9893.patch
>
>
> The following assert condition is incorrect when decoding blob var byte array.
> {code}
>     assert t == 0 : "Unexpected bits remaining after decoding blob.";
> {code}
> When the number of bytes to decode is multiples of 8 (i.e the original number 
> of bytes is multiples of 7), this assert may fail.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to