[ https://issues.apache.org/jira/browse/HADOOP-7940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13261271#comment-13261271 ]
Jim Donofrio commented on HADOOP-7940: -------------------------------------- toString, getLength and other Text methods behave correctly after clear(). This will hurt the performance of the class when calling append often and then clear because you wont be able to use the byte array size that you had previously scaled up to. I dont think there was any expectation that getBytes would return a 0 length array, it says right in the javadoc: "Returns the raw bytes; however, only data up to {@link #getLength()} is valid." which in this case is valid, 0 of the bytes are valid > method clear() in org.apache.hadoop.io.Text does not work > --------------------------------------------------------- > > Key: HADOOP-7940 > URL: https://issues.apache.org/jira/browse/HADOOP-7940 > Project: Hadoop Common > Issue Type: Bug > Components: io > Affects Versions: 0.20.205.0 > Environment: Ubuntu, hadoop cloudera CDH3U2, Oracle SUN JDK 6U30 > Reporter: Aaron, > Assignee: Csaba Miklos > Labels: patch > Fix For: 2.0.0 > > Attachments: HADOOP-7940.patch > > Original Estimate: 2h > Remaining Estimate: 2h > > LineReader reader = new LineReader(in, 4096); > ... > Text text = new Text(); > while((reader.readLine(text)) > 0) { > ... > text.clear(); > } > } > Even the clear() method is called each time, some bytes are still not filled > as zero. > So, when reader.readLine(text) is called in a loop, some bytes are dirty > which was from last call. -- 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