[
https://issues.apache.org/jira/browse/HBASE-11437?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14059398#comment-14059398
]
Enis Soztutar commented on HBASE-11437:
---------------------------------------
bq. Another option would be to deprecate both 'short Cell#getTagsLength' and
'int Cell#getTagsLengthUnsigned' in 0.98 and 0.99 and for 2.0.0 replace both
with 'int Cell#getTagsLength'. Thus, in trunk we replace a short return type
with an int and keep a reasonable method name, while respecting deprecation
convention. What do you think?
This seems strange to me. If an application program wants to use this and
compile against both 1.x line and 2.x line, then there is no correct way to use
the API. I think trunk patch should include the Cell#getTagsLengthUnsigned()
signature with deprecated annotation so that users can switch. Also can you
please add a javadoc for the methods explaining the reason for deprecating, and
which API they should use for which version.
Otherwise +1 for branch-1.
> Modify cell tag handling code to treat the length as unsigned
> -------------------------------------------------------------
>
> Key: HBASE-11437
> URL: https://issues.apache.org/jira/browse/HBASE-11437
> Project: HBase
> Issue Type: Improvement
> Affects Versions: 0.98.0
> Reporter: Anoop Sam John
> Assignee: Anoop Sam John
> Fix For: 0.99.0, 0.98.4, 2.0.0
>
> Attachments: HBASE-11437.patch, HBASE-11437.patch, HBASE-11437.patch,
> HBASE-11437_0.98.patch, HBASE-11437_branch-1.patch, HBASE-11437_trunk.patch
>
>
> We store each tag's length and total tags length with 2 bytes in KeyValue
> buffer, HFiles etc and we treat these lengths as short through out the code.
> So the max length can be Short.MAX_VALUE. We can treat these lengths as
> unsigned and +ve always. So we can actually treat these lengths as int and
> store with 2 bytes so that the max length can reach 65535.
--
This message was sent by Atlassian JIRA
(v6.2#6252)