[
https://issues.apache.org/jira/browse/HADOOP-6298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12902051#action_12902051
]
David Rosenstrauch commented on HADOOP-6298:
--------------------------------------------
We just got hit with this problem as well, and lost several hours on this due
to getBytes giving me back an 18-byte array instead of the expected 12.
I realize this method is part of the API out in the field now, and so likely
can't be changed. But I think there should be *some* solution implemented for
this. i.e., some new method that's a variation on the name "getBytes" that
provides the expected behavior.
It's just asking for trouble leaving this little land mine out there for
developers to keep stumbling upon.
> BytesWritable#getBytes is a bad name that leads to programming mistakes
> -----------------------------------------------------------------------
>
> Key: HADOOP-6298
> URL: https://issues.apache.org/jira/browse/HADOOP-6298
> Project: Hadoop Common
> Issue Type: Improvement
> Affects Versions: 0.20.1
> Reporter: Nathan Marz
>
> Pretty much everyone at Rapleaf who has worked with Hadoop has misused
> BytesWritable#getBytes at some point, not expecting the byte array to be
> padded. I think we can completely alleviate these programming mistakes by
> deprecating and renaming this method (again) to be more descriptive. I
> propose "getPaddedBytes()" or "getPaddedValue()". It would also be helpful to
> have a helper method "getNonPaddedValue()" that makes a copy into a
> non-padded byte array.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.