You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by st...@apache.org on 2021/01/05 21:15:39 UTC
[hadoop] branch branch-3.3 updated: HADOOP-17430. Restore ability
to set Text to empty byte array (#2545)
This is an automated email from the ASF dual-hosted git repository.
stevel pushed a commit to branch branch-3.3
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.3 by this push:
new 9e85eb9 HADOOP-17430. Restore ability to set Text to empty byte array (#2545)
9e85eb9 is described below
commit 9e85eb9a2ef1ba2e4e19f233e0cc114dfd07a6dc
Author: dgzdot <57...@users.noreply.github.com>
AuthorDate: Wed Jan 6 05:09:41 2021 +0800
HADOOP-17430. Restore ability to set Text to empty byte array (#2545)
Contributed by gaozhan.ding
Change-Id: Ib2ad9120c15c46a3fa2de9e3206875cbbc2363c2
---
.../src/main/java/org/apache/hadoop/io/Text.java | 13 +++++++++++--
.../src/test/java/org/apache/hadoop/io/TestText.java | 18 ++++++++++++++++++
2 files changed, 29 insertions(+), 2 deletions(-)
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 3ab327f..67d7c4f 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
@@ -203,10 +203,19 @@ public class Text extends BinaryComparable
}
}
- /** Set to a utf8 byte array
+ /**
+ * Set to a utf8 byte array. If the length of <code>utf8</code> is
+ * <em>zero</em>, actually clear {@link #bytes} and any existing
+ * data is lost.
*/
public void set(byte[] utf8) {
- set(utf8, 0, utf8.length);
+ if (utf8.length == 0) {
+ bytes = EMPTY_BYTES;
+ length = 0;
+ textLength = -1;
+ } else {
+ set(utf8, 0, utf8.length);
+ }
}
/** copy a text. */
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 0fb20ac..715afaf 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
@@ -449,4 +449,22 @@ public class TestText {
2, Text.utf8Length(new String(new char[]{(char)254})));
}
+ @Test
+ public void testSetBytes(){
+ Text a = new Text(new byte[100]);
+ assertEquals("testSetBytes100 getLength error !",
+ 100, a.getLength());
+ assertEquals("testSetBytes100 getBytes.length error !",
+ 100, a.getBytes().length);
+ assertEquals("testSetBytes100 getTextLength error !",
+ 100, a.getTextLength());
+
+ a.set(new byte[0]);
+ assertEquals("testSetBytes0 getLength error !",
+ 0, a.getLength());
+ assertEquals("testSetBytes0 getBytes.length error !",
+ 0, a.getBytes().length);
+ assertEquals("testSetBytes0 getTextLength error !",
+ 0, a.getTextLength());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org