diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/primitive/ParquetStringInspector.java b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/primitive/ParquetStringInspector.java index a0eb43d399..5fcab9db06 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/primitive/ParquetStringInspector.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/primitive/ParquetStringInspector.java @@ -47,7 +47,7 @@ public Text getPrimitiveWritableObject(final Object o) { } if (o instanceof BytesWritable) { - return new Text(((BytesWritable) o).getBytes()); + return new Text(((BytesWritable) o).copyBytes()); } if (o instanceof Text) { @@ -76,7 +76,7 @@ public String getPrimitiveJavaObject(final Object o) { if (o instanceof BytesWritable) { try { - return Text.decode(((BytesWritable) o).getBytes()); + return Text.decode(((BytesWritable) o).getBytes(), 0, ((BytesWritable) o).getLength()); } catch (CharacterCodingException e) { throw new RuntimeException("Failed to decode string", e); } @@ -102,13 +102,12 @@ public String getPrimitiveJavaObject(final Object o) { @Override public Object set(final Object o, final Text text) { - return new BytesWritable(text == null ? null : text.getBytes()); + return new BytesWritable(text.getBytes(), text.getLength()); } @Override public Object set(final Object o, final String string) { - return new BytesWritable( - string == null ? null : string.getBytes(StandardCharsets.UTF_8)); + return new BytesWritable(string.getBytes(StandardCharsets.UTF_8)); } @Override