[ 
https://issues.apache.org/jira/browse/HADOOP-6868?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12890312#action_12890312
 ] 

Ted Yu commented on HADOOP-6868:
--------------------------------

>From Peter Minearo:
Let's say you create a Text object and drop in a String that sets the byte 
array length to 200.  Then drop in a a second String that sets the byte array 
length to 500.  Since, the new length is greater than the previous length; the 
byte array length is reset to the longer length.  Now, if you drop in a third 
String that would set the byte array length to 350; the Text object does not 
replace the byte array with a new length of 350; it utilizes the greater length 
of 500 and sets an extra variable to track the "real" length.

So: Text.getBytes().length != Text.getLength()

This does 2 things:

1. Passes around more data than what is needed
2. Makes the Text object confusing to work with

Text.getBytes().length == Text.getLength() - should be the correct behavior.

> Text class should provide method to return byte array of getLength()
> --------------------------------------------------------------------
>
>                 Key: HADOOP-6868
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6868
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: util
>    Affects Versions: 0.20.2
>            Reporter: Ted Yu
>
> People would use the following code to convert Text to String:
> String valueString = new String(valueText.getBytes(), "UTF-8");
> However, if Text is reused, the above call would return String of 
> monotonically increasing length.
> From 'Hadoop and XML' discussion thread:
> The problem I am seeing is between the Map phase and the
> Reduce phase, the XML is getting munged.  For Example:
>  </PrivateRate>
>  </PrivateRateSet>te>
> Text should provide method to return byte array of getLength() length.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to