[ 
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

        

Reply via email to