Author: harsh
Date: Fri May 25 06:38:16 2012
New Revision: 1342514
URL: http://svn.apache.org/viewvc?rev=1342514&view=rev
Log:
HADOOP-8323. Add javadoc and tests for Text.clear() behavior (harsh)
Modified:
hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1342514&r1=1342513&r2=1342514&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
(original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt Fri May
25 06:38:16 2012
@@ -179,6 +179,8 @@ Release 2.0.1-alpha - UNRELEASED
HADOOP-8422. Deprecate FileSystem#getDefault* and getServerDefault
methods that don't take a Path argument. (eli)
+ HADOOP-8323. Add javadoc and tests for Text.clear() behavior (harsh)
+
BUG FIXES
HADOOP-8372. NetUtils.normalizeHostName() incorrectly handles hostname
Modified:
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java?rev=1342514&r1=1342513&r2=1342514&view=diff
==============================================================================
---
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java
(original)
+++
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java
Fri May 25 06:38:16 2012
@@ -236,6 +236,11 @@ public class Text extends BinaryComparab
/**
* Clear the string to empty.
+ *
+ * <em>Note</em>: For performance reasons, this call does not clear the
+ * underlying byte array that is retrievable via {@link #getBytes()}.
+ * In order to free the byte-array memory, call {@link #set(byte[])}
+ * with an empty byte array (For example, <code>new byte[0]</code>).
*/
public void clear() {
length = 0;
Modified:
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java?rev=1342514&r1=1342513&r2=1342514&view=diff
==============================================================================
---
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java
(original)
+++
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java
Fri May 25 06:38:16 2012
@@ -241,6 +241,30 @@ public class TestText extends TestCase {
Text.validateUTF8(utf8, 0, length);
}
+ public void testClear() throws Exception {
+ // Test lengths on an empty text object
+ Text text = new Text();
+ assertEquals(
+ "Actual string on an empty text object must be an empty string",
+ "", text.toString());
+ assertEquals("Underlying byte array length must be zero",
+ 0, text.getBytes().length);
+ assertEquals("String's length must be zero",
+ 0, text.getLength());
+
+ // Test if clear works as intended
+ text = new Text("abcd\u20acbdcd\u20ac");
+ int len = text.getLength();
+ text.clear();
+ assertEquals("String must be empty after clear()",
+ "", text.toString());
+ assertTrue(
+ "Length of the byte array must not decrease after clear()",
+ text.getBytes().length >= len);
+ assertEquals("Length of the string must be reset to 0 after clear()",
+ 0, text.getLength());
+ }
+
public void testTextText() throws CharacterCodingException {
Text a=new Text("abc");
Text b=new Text("a");