HADOOP-17430. Restore ability to set Text to empty byte array (#2545)
Contributed by gaozhan.ding Change-Id: Ib2ad9120c15c46a3fa2de9e3206875cbbc2363c2
This commit is contained in:
parent
94c126cc9e
commit
9e85eb9a2e
|
@ -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) {
|
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. */
|
/** copy a text. */
|
||||||
|
|
|
@ -449,4 +449,22 @@ public class TestText {
|
||||||
2, Text.utf8Length(new String(new char[]{(char)254})));
|
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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue