From e478bc4384a84a32f997c88b634ac7229a0a501f Mon Sep 17 00:00:00 2001 From: Harsh J Date: Wed, 29 Feb 2012 10:52:22 +0000 Subject: [PATCH] HADOOP-7940. The Text.clear() method does not clear the bytes as intended. Contributed by Csaba Miklos. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1295061 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-common-project/hadoop-common/CHANGES.txt | 2 ++ .../src/main/java/org/apache/hadoop/io/Text.java | 1 + .../src/test/java/org/apache/hadoop/io/TestText.java | 10 ++++++++++ 3 files changed, 13 insertions(+) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index a008097709b..569e85682b2 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -188,6 +188,8 @@ Release 0.23.3 - UNRELEASED HADOOP-8104. Inconsistent Jackson versions (tucu) + HADOOP-7940. The Text.clear() method does not clear the bytes as intended. (Csaba Miklos via harsh) + Release 0.23.2 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java index e38dd3c79a5..5c52883ebf5 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java @@ -239,6 +239,7 @@ public class Text extends BinaryComparable */ public void clear() { length = 0; + bytes = EMPTY_BYTES; } /* diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java index a7718bfba70..a756a57dae7 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java @@ -192,6 +192,16 @@ public class TestText extends TestCase { 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());