diff --git a/hcatalog/core/src/main/java/org/apache/hive/hcatalog/data/JsonSerDe.java b/hcatalog/core/src/main/java/org/apache/hive/hcatalog/data/JsonSerDe.java index af80c02..f598c01 100644 --- a/hcatalog/core/src/main/java/org/apache/hive/hcatalog/data/JsonSerDe.java +++ b/hcatalog/core/src/main/java/org/apache/hive/hcatalog/data/JsonSerDe.java @@ -165,7 +165,8 @@ public Object deserialize(Writable blob) throws SerDeException { JsonParser p; List r = new ArrayList(Collections.nCopies(columnNames.size(), null)); try { - p = jsonFactory.createJsonParser(new ByteArrayInputStream((t.getBytes()))); + p = jsonFactory.createJsonParser( + new ByteArrayInputStream(t.getBytes(), 0, t.getLength())); if (p.nextToken() != JsonToken.START_OBJECT) { throw new IOException("Start token not found where expected"); } diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/JsonSerDe.java b/serde/src/java/org/apache/hadoop/hive/serde2/JsonSerDe.java index 2bb4a0f..96e5452 100644 --- a/serde/src/java/org/apache/hadoop/hive/serde2/JsonSerDe.java +++ b/serde/src/java/org/apache/hadoop/hive/serde2/JsonSerDe.java @@ -151,7 +151,8 @@ public Object deserialize(Writable blob) throws SerDeException { JsonParser p; List r = new ArrayList<>(Collections.nCopies(columnNames.size(), null)); try { - p = jsonFactory.createJsonParser(new ByteArrayInputStream((t.getBytes()))); + p = jsonFactory.createJsonParser( + new ByteArrayInputStream(t.getBytes(), 0, t.getLength())); if (p.nextToken() != JsonToken.START_OBJECT) { throw new IOException("Start token not found where expected"); }