diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveInspectors.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveInspectors.scala index 3e91569109fc4..589862c7c02ee 100644 --- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveInspectors.scala +++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveInspectors.scala @@ -320,9 +320,10 @@ private[hive] trait HiveInspectors { case hvoi: HiveCharObjectInspector => UTF8String.fromString(hvoi.getPrimitiveJavaObject(data).getValue) case x: StringObjectInspector if x.preferWritable() => - // Text is in UTF-8 already. No need to convert again via fromString + // Text is in UTF-8 already. No need to convert again via fromString. Copy bytes val wObj = x.getPrimitiveWritableObject(data) - UTF8String.fromBytes(wObj.getBytes, 0, wObj.getLength) + val result = wObj.copyBytes() + UTF8String.fromBytes(result, 0, result.length) case x: StringObjectInspector => UTF8String.fromString(x.getPrimitiveJavaObject(data)) case x: IntObjectInspector if x.preferWritable() => x.get(data)