From 8c74f6f619a1d0c7535ab16ad63fb9ef9875d782 Mon Sep 17 00:00:00 2001 From: Doug Roper Date: Sat, 18 Dec 2021 04:27:54 -0500 Subject: [PATCH] Add failing test for JSON roundtrip precision loss --- .../core/json/JsonParserGeneratorTest.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/test/java/com/fasterxml/jackson/core/json/JsonParserGeneratorTest.java diff --git a/src/test/java/com/fasterxml/jackson/core/json/JsonParserGeneratorTest.java b/src/test/java/com/fasterxml/jackson/core/json/JsonParserGeneratorTest.java new file mode 100644 index 0000000000..68290eff59 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/core/json/JsonParserGeneratorTest.java @@ -0,0 +1,27 @@ +package com.fasterxml.jackson.core.json; + +import com.fasterxml.jackson.core.BaseTest; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; + +import java.io.ByteArrayOutputStream; +import java.io.StringWriter; + +public class JsonParserGeneratorTest + extends BaseTest { + final JsonFactory JSON_F = newStreamFactory(); + + public void testRoundtripBigDecimal() throws Exception { + String input = "1e999"; + JsonParser parser = JSON_F.createParser(input); + parser.nextToken(); + StringWriter stringWriter = new StringWriter(); + JsonGenerator generator = JSON_F.createGenerator(stringWriter); + generator.copyCurrentEvent(parser); + parser.close(); + generator.close(); + String actual = stringWriter.toString(); // "Infinity" + assertEquals(input, actual); + } +}