From 20cc5814a4f829a1617f4d5d7a5620267461078d Mon Sep 17 00:00:00 2001 From: tianchen Date: Thu, 1 Aug 2019 11:18:05 +0800 Subject: [PATCH] ARROW-1875: [Java] Write 64-bit ints as strings in integration test JSON files --- .../java/org/apache/arrow/vector/ipc/JsonFileReader.java | 5 +++-- .../java/org/apache/arrow/vector/ipc/JsonFileWriter.java | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ipc/JsonFileReader.java b/java/vector/src/main/java/org/apache/arrow/vector/ipc/JsonFileReader.java index 5ae970a2e7d..f6383e2d536 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/ipc/JsonFileReader.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/ipc/JsonFileReader.java @@ -318,7 +318,8 @@ protected ArrowBuf read(BufferAllocator allocator, int count) throws IOException for (int i = 0; i < count; i++) { parser.nextToken(); - buf.writeLong(parser.getLongValue()); + String value = parser.getValueAsString(); + buf.writeLong(Long.valueOf(value)); } return buf; @@ -378,7 +379,7 @@ protected ArrowBuf read(BufferAllocator allocator, int count) throws IOException for (int i = 0; i < count; i++) { parser.nextToken(); - BigInteger value = parser.getBigIntegerValue(); + BigInteger value = new BigInteger(parser.getValueAsString()); buf.writeLong(value.longValue()); } diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ipc/JsonFileWriter.java b/java/vector/src/main/java/org/apache/arrow/vector/ipc/JsonFileWriter.java index dfd57c5ab00..8ccd7c0c625 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/ipc/JsonFileWriter.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/ipc/JsonFileWriter.java @@ -273,7 +273,7 @@ private void writeValueToGenerator( generator.writeNumber(IntVector.get(buffer, index)); break; case BIGINT: - generator.writeNumber(BigIntVector.get(buffer, index)); + generator.writeString(String.valueOf(BigIntVector.get(buffer, index))); break; case UINT1: generator.writeNumber(UInt1Vector.getNoOverflow(buffer, index)); @@ -285,7 +285,7 @@ private void writeValueToGenerator( generator.writeNumber(UInt4Vector.getNoOverflow(buffer, index)); break; case UINT8: - generator.writeNumber(UInt8Vector.getNoOverflow(buffer, index)); + generator.writeString(UInt8Vector.getNoOverflow(buffer, index).toString()); break; case FLOAT4: generator.writeNumber(Float4Vector.get(buffer, index));