You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Todd Lipcon (Resolved) (JIRA)" <ji...@apache.org> on 2012/04/12 19:21:23 UTC

[jira] [Resolved] (HADOOP-8272) BytesWritable length problem

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

Todd Lipcon resolved HADOOP-8272.
---------------------------------

    Resolution: Invalid

This is not a bug - this is the expected behavior of getBytes(). Please refer to the javadoc:
{code}

  /**
   * Get the data backing the BytesWritable. Please use {@link #copyBytes()}
   * if you need the returned array to be precisely the length of the data.
   * @return The data is only valid between 0 and getLength() - 1.
   */
{code}
                
> BytesWritable length problem
> ----------------------------
>
>                 Key: HADOOP-8272
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8272
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: io
>    Affects Versions: 0.20.205.0
>            Reporter: Simon Gilliot
>              Labels: hadoop
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I tried to create my own Writable which contains a BytesWritable.
> In my conctructor, I tried to create an empty BytesWritable :
> BytesWritable key = new BytesWritable();
> Next, in my readFields, I did :
> key.readFields(in); LOG.debug(Bytes.toString(key.getBytes()));
> The key contains much more bytes than I had wrote.
> In fact, if my BytesWritable contains 100 bytes, I thing that the readFields() of BytesWritable call :
> * setSize(0) (which seems useless since the values in the old range are preserved and any new values are undefined). * setSize(100) which extends the bytes array (by setCapacity) to 1.5 * the size (so 150) without initalizing it
> * readFully(bytes, 0, 100) which fill the bytes array from '0' to '100' offsets.
> And when I call getBytes() on it, the bytes array of 150 bytes is returned without any control.
> That seems possible that the same problem happens in other conditions, when we increase ths bytes array size.

--
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