DBZ-759 Fix unusable array information in Serialization

According to ErrorProne, (implicitly) calling toString on the array does
not give useful information.
Also applying Base64 encoding is strange here.
This commit is contained in:
Andreas Bergmeier 2018-06-21 15:41:47 +02:00 committed by Gunnar Morling
parent f9c1cfc134
commit 71abca2afb

View File

@ -9,7 +9,7 @@
import java.time.Instant;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
import java.util.Base64;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -175,10 +175,9 @@ public RecordWriter append(Object obj) {
}
sb.append('}');
} else if (obj instanceof ByteBuffer) {
ByteBuffer b = (ByteBuffer) obj;
sb.append('"').append(Base64.getEncoder().encode(b.array())).append('"');
append((ByteBuffer)obj);
} else if (obj instanceof byte[]) {
sb.append('"').append(Base64.getEncoder().encode((byte[])obj)).append('"');
append((byte[])obj);
} else if (obj instanceof Map<?, ?>) {
Map<?, ?> map = (Map<?, ?>) obj;
sb.append('{');
@ -253,6 +252,15 @@ public RecordWriter append(Object obj) {
return this;
}
protected void append(ByteBuffer b) {
append(b.array());
}
protected void append(byte[] b) {
String arrayString = Arrays.toString(b);
sb.append('"').append(arrayString).append('"');
}
protected void appendFirst(String name, Object value) {
append(name);
sb.append(" : ");