Skip to content

Commit 2b6e52d

Browse files
committed
Update Parsson, add test for big numbers
1 parent 81d6d61 commit 2b6e52d

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

java-client-serverless/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ dependencies {
210210
// Needed even if using Jackson to have an implementation of the Jsonp object model
211211
// EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
212212
// https://github.com/eclipse-ee4j/parsson
213-
api("org.eclipse.parsson:parsson:1.0.0")
213+
api("org.eclipse.parsson:parsson:1.0.5")
214214

215215
// OpenTelemetry API for native instrumentation of the client.
216216
// Apache 2.0

java-client/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ dependencies {
206206
// Needed even if using Jackson to have an implementation of the Jsonp object model
207207
// EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
208208
// https://github.com/eclipse-ee4j/parsson
209-
api("org.eclipse.parsson:parsson:1.0.0")
209+
api("org.eclipse.parsson:parsson:1.0.5")
210210

211211
// OpenTelemetry API for native instrumentation of the client.
212212
// Apache 2.0

java-client/src/test/java/co/elastic/clients/json/JsonpMapperTest.java

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,18 @@
1919

2020
package co.elastic.clients.json;
2121

22-
import co.elastic.clients.json.JsonpMapper;
2322
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
2423
import co.elastic.clients.json.jsonb.JsonbJsonpMapper;
2524
import com.fasterxml.jackson.annotation.JsonInclude;
2625
import com.fasterxml.jackson.core.type.TypeReference;
2726
import com.fasterxml.jackson.databind.ObjectMapper;
2827
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
28+
import jakarta.json.JsonArray;
29+
import jakarta.json.JsonNumber;
30+
import jakarta.json.bind.spi.JsonbProvider;
2931
import jakarta.json.stream.JsonGenerator;
3032
import jakarta.json.stream.JsonParser;
33+
import org.eclipse.parsson.JsonProviderImpl;
3134
import org.junit.jupiter.api.Assertions;
3235
import org.junit.jupiter.api.Test;
3336

@@ -46,16 +49,18 @@ public class JsonpMapperTest extends Assertions {
4649

4750
@Test
4851
public void testJsonb() {
49-
JsonpMapper mapper = new JsonbJsonpMapper();
52+
JsonpMapper mapper = new JsonbJsonpMapper(new JsonProviderImpl(), JsonbProvider.provider());
5053
testSerialize(mapper, json);
5154
testDeserialize(mapper, json);
55+
testLargeNumber(mapper);
5256
}
5357

5458
@Test
5559
public void testJackson() {
5660
JacksonJsonpMapper mapper = new JacksonJsonpMapper();
57-
testSerialize(new JacksonJsonpMapper(), json);
58-
testDeserialize(new JacksonJsonpMapper(), json);
61+
testSerialize(mapper, json);
62+
testDeserialize(mapper, json);
63+
testLargeNumber(mapper);
5964
}
6065

6166
@Test
@@ -149,6 +154,20 @@ private void testDeserialize(JsonpMapper mapper, String json) {
149154
assertNull(child.getChildren());
150155
}
151156

157+
private void testLargeNumber(JsonpMapper mapper) {
158+
String json = "[1e999999]";
159+
JsonParser parser = mapper.jsonProvider().createParser(new StringReader(json));
160+
parser.next();
161+
162+
JsonArray array = parser.getValue().asJsonArray();
163+
164+
JsonNumber number = array.getJsonNumber(0);
165+
166+
assertTrue(Double.isInfinite(number.doubleValue()));
167+
168+
Assertions.assertThrows(Exception.class, number::bigIntegerValue);
169+
}
170+
152171
public static class SomeClass {
153172
private List<SomeClass> children;
154173
private double doubleValue;

0 commit comments

Comments
 (0)