You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Csaba Miklos (Updated) (JIRA)" <ji...@apache.org> on 2012/02/28 01:13:52 UTC
[jira] [Updated] (HADOOP-7940) method clear() in
org.apache.hadoop.io.Text does not work
[ https://issues.apache.org/jira/browse/HADOOP-7940?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Csaba Miklos updated HADOOP-7940:
---------------------------------
Labels: patch (was: )
Status: Patch Available (was: Open)
Index: hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java
===================================================================
--- hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java (revision 1294407)
+++ hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java (working copy)
@@ -239,6 +239,7 @@
*/
public void clear() {
length = 0;
+ bytes = EMPTY_BYTES;
}
/*
Index: hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java
===================================================================
--- hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java (revision 1294407)
+++ hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java (working copy)
@@ -192,6 +192,16 @@
assertTrue(text.find("\u20ac", 5)==11);
}
+ public void testClear() {
+ Text text = new Text();
+ assertEquals("", text.toString());
+ assertEquals(0, text.getBytes().length);
+ text = new Text("abcd\u20acbdcd\u20ac");
+ text.clear();
+ assertEquals("", text.toString());
+ assertEquals(0, text.getBytes().length);
+ }
+
public void testFindAfterUpdatingContents() throws Exception {
Text text = new Text("abcd");
text.set("a".getBytes());
> 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
> 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