[
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