Skip to content

Commit 35143ed

Browse files
committed
Merge branch '2.19'
2 parents 20ad657 + b56139e commit 35143ed

File tree

7 files changed

+51
-35
lines changed

7 files changed

+51
-35
lines changed

src/test/java/tools/jackson/databind/convert/UpdateViaObjectReaderTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public DataA deserialize(JsonParser p, DeserializationContext ctxt)
7878
}
7979
/*JsonNode node =*/ p.readValueAsTree();
8080

81+
p.skipChildren(); // important, must consume input
8182
DataA da = new DataA();
8283
da.i = 5;
8384
return da;

src/test/java/tools/jackson/databind/deser/bean/BeanDeserializerTest.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,9 @@ public BogusBeanDeserializer(String a, String b) {
100100
}
101101

102102
@Override
103-
public Object deserialize(JsonParser jp, DeserializationContext ctxt)
103+
public Object deserialize(JsonParser p, DeserializationContext ctxt)
104104
{
105+
p.skipChildren();
105106
return new Bean(a, b);
106107
}
107108
}
@@ -247,8 +248,9 @@ static class ArrayDeserializerModifier extends ValueDeserializerModifier {
247248
public ValueDeserializer<?> modifyArrayDeserializer(DeserializationConfig config, ArrayType valueType,
248249
BeanDescription beanDesc, ValueDeserializer<?> deserializer) {
249250
return (ValueDeserializer<?>) new StdDeserializer<Object>(Object.class) {
250-
@Override public Object deserialize(JsonParser jp,
251+
@Override public Object deserialize(JsonParser p,
251252
DeserializationContext ctxt) {
253+
p.skipChildren();
252254
return new String[] { "foo" };
253255
}
254256
};
@@ -260,8 +262,9 @@ static class CollectionDeserializerModifier extends ValueDeserializerModifier {
260262
public ValueDeserializer<?> modifyCollectionDeserializer(DeserializationConfig config, CollectionType valueType,
261263
BeanDescription beanDesc, ValueDeserializer<?> deserializer) {
262264
return (ValueDeserializer<?>) new StdDeserializer<Object>(Object.class) {
263-
@Override public Object deserialize(JsonParser jp,
265+
@Override public Object deserialize(JsonParser p,
264266
DeserializationContext ctxt) {
267+
p.skipChildren();
265268
ArrayList<String> list = new ArrayList<String>();
266269
list.add("foo");
267270
return list;
@@ -275,8 +278,9 @@ static class MapDeserializerModifier extends ValueDeserializerModifier {
275278
public ValueDeserializer<?> modifyMapDeserializer(DeserializationConfig config, MapType valueType,
276279
BeanDescription beanDesc, ValueDeserializer<?> deserializer) {
277280
return (ValueDeserializer<?>) new StdDeserializer<Object>(Object.class) {
278-
@Override public Object deserialize(JsonParser jp,
281+
@Override public Object deserialize(JsonParser p,
279282
DeserializationContext ctxt) {
283+
p.skipChildren();
280284
HashMap<String,String> map = new HashMap<String,String>();
281285
map.put("a", "foo");
282286
return map;

src/test/java/tools/jackson/databind/deser/filter/ProblemHandlerTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ public Object handleUnexpectedToken(DeserializationContext ctxt,
137137
JavaType targetType, JsonToken t, JsonParser p,
138138
String failureMsg)
139139
{
140+
p.skipChildren();
140141
return value;
141142
}
142143
}

src/test/java/tools/jackson/databind/deser/jdk/JDKScalarsDeserTest.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@
1414
import tools.jackson.databind.*;
1515
import tools.jackson.databind.exc.MismatchedInputException;
1616
import tools.jackson.databind.util.ClassUtil;
17+
import tools.jackson.databind.testutil.DatabindTestUtil;
1718

1819
import static org.junit.jupiter.api.Assertions.*;
1920

20-
import static tools.jackson.databind.testutil.DatabindTestUtil.*;
21-
2221
/**
2322
* Unit tests for verifying handling of simple basic non-structured
2423
* types; primitives (and/or their wrappers), Strings.
2524
*/
2625
public class JDKScalarsDeserTest
26+
extends DatabindTestUtil
2727
{
2828
private final static String NAN_STRING = "NaN";
2929

@@ -548,7 +548,7 @@ public void testBase64Variants() throws Exception
548548

549549
/**
550550
* Then a unit test to verify that we can conveniently bind sequence of
551-
* space-separate simple values
551+
* space-separated simple values
552552
*/
553553
@Test
554554
public void testSequenceOfInts() throws Exception
@@ -560,12 +560,15 @@ public void testSequenceOfInts() throws Exception
560560
sb.append(" ");
561561
sb.append(i);
562562
}
563-
JsonParser p = MAPPER.createParser(sb.toString());
564-
for (int i = 0; i < NR_OF_INTS; ++i) {
565-
Integer result = MAPPER.readValue(p, Integer.class);
566-
assertEquals(Integer.valueOf(i), result);
563+
ObjectMapper mapper = jsonMapperBuilder()
564+
.disable(DeserializationFeature.FAIL_ON_TRAILING_TOKENS)
565+
.build();
566+
try (JsonParser p = mapper.createParser(sb.toString())) {
567+
for (int i = 0; i < NR_OF_INTS; ++i) {
568+
Integer result = mapper.readValue(p, Integer.class);
569+
assertEquals(Integer.valueOf(i), result);
570+
}
567571
}
568-
p.close();
569572
}
570573

571574
/*

src/test/java/tools/jackson/databind/deser/jdk/LocaleDeserTest.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.junit.jupiter.api.Test;
88

99
import tools.jackson.core.type.TypeReference;
10+
import tools.jackson.databind.DeserializationFeature;
1011
import tools.jackson.databind.ObjectMapper;
1112

1213
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -299,8 +300,9 @@ private void assertLocale(Locale expected, Locale actual) {
299300
@Test
300301
public void testLocaleFuzz47034() throws Exception
301302
{
302-
Locale loc = MAPPER.readValue(getClass().getResourceAsStream("/fuzz/oss-fuzz-47034.json"),
303-
Locale.class);
303+
Locale loc = MAPPER.readerFor(Locale.class)
304+
.without(DeserializationFeature.FAIL_ON_TRAILING_TOKENS)
305+
.readValue(getClass().getResourceAsStream("/fuzz/oss-fuzz-47034.json"));
304306
assertNotNull(loc);
305307
}
306308

@@ -309,8 +311,9 @@ public void testLocaleFuzz47034() throws Exception
309311
@Test
310312
public void testLocaleFuzz47036() throws Exception
311313
{
312-
Locale loc = MAPPER.readValue(getClass().getResourceAsStream("/fuzz/oss-fuzz-47036.json"),
313-
Locale.class);
314+
Locale loc = MAPPER.readerFor(Locale.class)
315+
.without(DeserializationFeature.FAIL_ON_TRAILING_TOKENS)
316+
.readValue(getClass().getResourceAsStream("/fuzz/oss-fuzz-47036.json"));
314317
assertNotNull(loc);
315318
}
316319
}

src/test/java/tools/jackson/databind/deser/validate/FullStreamReadTest.java

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,14 @@
99
import tools.jackson.databind.*;
1010
import tools.jackson.databind.exc.MismatchedInputException;
1111
import tools.jackson.databind.json.JsonMapper;
12+
import tools.jackson.databind.testutil.DatabindTestUtil;
1213

1314
import static org.junit.jupiter.api.Assertions.*;
1415

15-
import static tools.jackson.databind.testutil.DatabindTestUtil.newJsonMapper;
16-
import static tools.jackson.databind.testutil.DatabindTestUtil.verifyException;
17-
1816
/**
1917
* Test for validating {@link tools.jackson.databind.DeserializationFeature#FAIL_ON_TRAILING_TOKENS}.
2018
*/
21-
public class FullStreamReadTest
19+
public class FullStreamReadTest extends DatabindTestUtil
2220
{
2321
private final static String JSON_OK_ARRAY = " [ 1, 2, 3] ";
2422
private final static String JSON_OK_ARRAY_WITH_COMMENT = JSON_OK_ARRAY + " // stuff ";
@@ -40,27 +38,31 @@ public class FullStreamReadTest
4038
@Test
4139
public void testMapperAcceptTrailing()
4240
{
43-
assertFalse(MAPPER.isEnabled(DeserializationFeature.FAIL_ON_TRAILING_TOKENS));
41+
ObjectMapper mapper = jsonMapperBuilder()
42+
.disable(DeserializationFeature.FAIL_ON_TRAILING_TOKENS)
43+
.build();
44+
45+
assertFalse(mapper.isEnabled(DeserializationFeature.FAIL_ON_TRAILING_TOKENS));
4446

4547
// by default, should be ok to read, all
46-
_verifyArray(MAPPER.readTree(JSON_OK_ARRAY));
47-
_verifyArray(MAPPER.readTree(JSON_OK_ARRAY_WITH_COMMENT));
48-
_verifyArray(MAPPER.readTree(JSON_FAIL_ARRAY));
48+
_verifyArray(mapper.readTree(JSON_OK_ARRAY));
49+
_verifyArray(mapper.readTree(JSON_OK_ARRAY_WITH_COMMENT));
50+
_verifyArray(mapper.readTree(JSON_FAIL_ARRAY));
4951

5052
// and also via "untyped"
51-
_verifyCollection(MAPPER.readValue(JSON_OK_ARRAY, List.class));
52-
_verifyCollection(MAPPER.readValue(JSON_OK_ARRAY_WITH_COMMENT, List.class));
53-
_verifyCollection(MAPPER.readValue(JSON_FAIL_ARRAY, List.class));
53+
_verifyCollection(mapper.readValue(JSON_OK_ARRAY, List.class));
54+
_verifyCollection(mapper.readValue(JSON_OK_ARRAY_WITH_COMMENT, List.class));
55+
_verifyCollection(mapper.readValue(JSON_FAIL_ARRAY, List.class));
5456

5557
// ditto for getting `null` and some other token
5658

57-
assertTrue(MAPPER.readTree(JSON_OK_NULL).isNull());
58-
assertTrue(MAPPER.readTree(JSON_OK_NULL_WITH_COMMENT).isNull());
59-
assertTrue(MAPPER.readTree(JSON_FAIL_NULL).isNull());
59+
assertTrue(mapper.readTree(JSON_OK_NULL).isNull());
60+
assertTrue(mapper.readTree(JSON_OK_NULL_WITH_COMMENT).isNull());
61+
assertTrue(mapper.readTree(JSON_FAIL_NULL).isNull());
6062

61-
assertNull(MAPPER.readValue(JSON_OK_NULL, Object.class));
62-
assertNull(MAPPER.readValue(JSON_OK_NULL_WITH_COMMENT, Object.class));
63-
assertNull(MAPPER.readValue(JSON_FAIL_NULL, Object.class));
63+
assertNull(mapper.readValue(JSON_OK_NULL, Object.class));
64+
assertNull(mapper.readValue(JSON_OK_NULL_WITH_COMMENT, Object.class));
65+
assertNull(mapper.readValue(JSON_FAIL_NULL, Object.class));
6466
}
6567

6668
@Test
@@ -176,8 +178,8 @@ public void testMapperFailOnTrailingWithNull()
176178
@Test
177179
public void testReaderAcceptTrailing()
178180
{
179-
ObjectReader R = MAPPER.reader();
180-
assertFalse(R.isEnabled(DeserializationFeature.FAIL_ON_TRAILING_TOKENS));
181+
ObjectReader R = MAPPER.reader()
182+
.without(DeserializationFeature.FAIL_ON_TRAILING_TOKENS);
181183

182184
_verifyArray(R.readTree(JSON_OK_ARRAY));
183185
_verifyArray(R.readTree(JSON_OK_ARRAY_WITH_COMMENT));

src/test/java/tools/jackson/databind/module/SimpleModuleTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ static class Test3787Bean {
168168
static class Deserializer3787A extends ValueDeserializer<Test3787Bean> {
169169
@Override
170170
public Test3787Bean deserialize(JsonParser p, DeserializationContext ctxt) {
171+
p.skipChildren(); // important to consume value
171172
Test3787Bean simpleTestBean = new Test3787Bean();
172173
simpleTestBean.value = "I am A";
173174
return simpleTestBean;
@@ -177,6 +178,7 @@ public Test3787Bean deserialize(JsonParser p, DeserializationContext ctxt) {
177178
static class Deserializer3787B extends ValueDeserializer<Test3787Bean> {
178179
@Override
179180
public Test3787Bean deserialize(JsonParser p, DeserializationContext ctxt) {
181+
p.skipChildren(); // important to consume value
180182
Test3787Bean simpleTestBean = new Test3787Bean();
181183
simpleTestBean.value = "I am B";
182184
return simpleTestBean;

0 commit comments

Comments
 (0)