Skip to content

Commit f682657

Browse files
committed
Revert "Fix serialization of NaN/Infinite/Min/Max values"
This reverts commit ad286eb.
1 parent ad286eb commit f682657

File tree

2 files changed

+4
-53
lines changed

2 files changed

+4
-53
lines changed

java-client/src/main/java/co/elastic/clients/json/JsonpUtils.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,15 +217,17 @@ public static String toString(JsonValue value) {
217217
}
218218

219219
public static void serializeDoubleOrNull(JsonGenerator generator, double value, double defaultValue) {
220-
if (!Double.isFinite(value)) {
220+
// Only output null if the default value isn't finite, which cannot be represented as JSON
221+
if (value == defaultValue && !Double.isFinite(defaultValue)) {
221222
generator.writeNull();
222223
} else {
223224
generator.write(value);
224225
}
225226
}
226227

227228
public static void serializeIntOrNull(JsonGenerator generator, int value, int defaultValue) {
228-
if (value == defaultValue && (defaultValue == Integer.MAX_VALUE || defaultValue == Integer.MIN_VALUE)) {
229+
// Only output null if the default value isn't finite, which cannot be represented as JSON
230+
if (value == defaultValue && defaultValue == Integer.MAX_VALUE || defaultValue == Integer.MIN_VALUE) {
229231
generator.writeNull();
230232
} else {
231233
generator.write(value);

java-client/src/test/java/co/elastic/clients/elasticsearch/json/JsonpUtilsTest.java

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,12 @@
2323
import co.elastic.clients.util.AllowForbiddenApis;
2424
import jakarta.json.JsonException;
2525
import jakarta.json.spi.JsonProvider;
26-
import jakarta.json.stream.JsonGenerator;
2726
import org.junit.Assert;
2827
import org.junit.Test;
2928

30-
import java.io.StringWriter;
3129
import java.net.URL;
3230
import java.util.Collections;
3331
import java.util.Enumeration;
34-
import java.util.function.Consumer;
3532

3633
public class JsonpUtilsTest extends Assert {
3734

@@ -63,52 +60,4 @@ public Enumeration<URL> getResources(String name) {
6360
Thread.currentThread().setContextClassLoader(savedLoader);
6461
}
6562
}
66-
67-
@Test
68-
public void testSerializeDoubleOrNull() {
69-
// ---- Double values
70-
assertEquals("{\"a\":null}", orNullHelper(g -> JsonpUtils.serializeDoubleOrNull(g, Double.NaN, Double.NaN)));
71-
assertEquals("{\"a\":1.0}", orNullHelper(g -> JsonpUtils.serializeDoubleOrNull(g, 1.0, Double.NaN)));
72-
73-
assertEquals("{\"a\":null}",
74-
orNullHelper(g -> JsonpUtils.serializeDoubleOrNull(g, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)));
75-
assertEquals("{\"a\":1.0}", orNullHelper(g -> JsonpUtils.serializeDoubleOrNull(g, 1.0, Double.POSITIVE_INFINITY)));
76-
77-
assertEquals("{\"a\":null}",
78-
orNullHelper(g -> JsonpUtils.serializeDoubleOrNull(g, Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)));
79-
assertEquals("{\"a\":1.0}", orNullHelper(g -> JsonpUtils.serializeDoubleOrNull(g, 1.0, Double.NEGATIVE_INFINITY)));
80-
81-
assertEquals("{\"a\":null}", orNullHelper(g -> JsonpUtils.serializeDoubleOrNull(g, Double.NaN, 0.0)));
82-
83-
// Serialize defined default values
84-
assertEquals("{\"a\":0.0}", orNullHelper(g -> JsonpUtils.serializeDoubleOrNull(g, 0.0, 0.0)));
85-
86-
}
87-
88-
@Test
89-
public void testSerializeIntOrNull() {
90-
assertEquals("{\"a\":null}", orNullHelper(g -> JsonpUtils.serializeIntOrNull(g, Integer.MAX_VALUE, Integer.MAX_VALUE)));
91-
assertEquals("{\"a\":1}", orNullHelper(g -> JsonpUtils.serializeIntOrNull(g, 1, Integer.MAX_VALUE)));
92-
assertEquals("{\"a\":1}", orNullHelper(g -> JsonpUtils.serializeIntOrNull(g, 1, 0)));
93-
94-
// Integer.MAX_VALUE is valid if not the default value
95-
assertEquals("{\"a\":2147483647}", orNullHelper(g -> JsonpUtils.serializeIntOrNull(g, Integer.MAX_VALUE, 0)));
96-
assertEquals("{\"a\":2147483647}", orNullHelper(g -> JsonpUtils.serializeIntOrNull(g, Integer.MAX_VALUE, Integer.MIN_VALUE)));
97-
98-
// Serialize non infinite default values
99-
assertEquals("{\"a\":0}", orNullHelper(g -> JsonpUtils.serializeIntOrNull(g, 0, 0)));
100-
}
101-
102-
private static String orNullHelper(Consumer<JsonGenerator> c) {
103-
StringWriter sw = new StringWriter();
104-
JsonGenerator generator = JsonpUtils.provider().createGenerator(sw);
105-
106-
generator.writeStartObject();
107-
generator.writeKey("a");
108-
c.accept(generator);
109-
generator.writeEnd();
110-
generator.close();
111-
112-
return sw.toString();
113-
}
11463
}

0 commit comments

Comments
 (0)