Skip to content

Commit f966e7b

Browse files
committed
Merge branch '2.x' into 3.x
2 parents b754275 + 89bcd75 commit f966e7b

File tree

6 files changed

+45
-6
lines changed

6 files changed

+45
-6
lines changed

avro/src/test/java/tools/jackson/dataformat/avro/AvroNumberTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@ public void testNumberCoercions() throws Exception
7272
JsonParser p = MAPPER.reader()
7373
.with(schema)
7474
.createParser(LimitingInputStream.wrap(bytes, 42));
75+
76+
_verifyGetNumberTypeFail(p, "null");
7577
assertToken(JsonToken.START_OBJECT, p.nextToken());
78+
_verifyGetNumberTypeFail(p, "START_OBJECT");
7679

7780
assertTrue(p.nextName(new SerializedString("i")));
7881
assertToken(JsonToken.VALUE_NUMBER_INT, p.nextToken());
@@ -124,6 +127,15 @@ public void testNumberCoercions() throws Exception
124127
assertEquals(Double.valueOf(input.d), p.getNumberValue());
125128

126129
assertToken(JsonToken.END_OBJECT, p.nextToken());
130+
_verifyGetNumberTypeFail(p, "END_OBJECT");
127131
p.close();
132+
133+
_verifyGetNumberTypeFail(p, "null");
134+
}
135+
136+
private void _verifyGetNumberTypeFail(JsonParser p, String token) throws Exception
137+
{
138+
// In 2.x got exception; in 3.x null
139+
assertNull(p.getNumberType());
128140
}
129141
}

cbor/src/test/java/tools/jackson/dataformat/cbor/parse/CBORNumberParsingGetType1433Test.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ void getNumberType() throws Exception
4949
_verifyGetNumberTypeFail(p, "VALUE_TRUE");
5050
assertToken(JsonToken.END_ARRAY, p.nextToken());
5151
_verifyGetNumberTypeFail(p, "END_ARRAY");
52-
assertNull(p.nextToken());
53-
_verifyGetNumberTypeFail(p, "null");
5452
p.close();
5553
_verifyGetNumberTypeFail(p, "null");
5654
}

ion/src/test/java/tools/jackson/dataformat/ion/IonParserTest.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,11 @@ public void testGetNumberTypeAndValue() throws Exception {
4141

4242
Integer intValue = Integer.MAX_VALUE;
4343
IonValue ionInt = ion.newInt(intValue);
44-
4544
IonParser intParser = ionFactory.createParser(EMPTY_READ_CTXT, ionInt);
45+
46+
// initially no current token so:
47+
_verifyGetNumberTypeFail(intParser, "null");
48+
4649
assertEquals(JsonToken.VALUE_NUMBER_INT, intParser.nextToken());
4750
assertEquals(JsonParser.NumberType.INT, intParser.getNumberType());
4851
assertEquals(JsonParser.NumberTypeFP.UNKNOWN, intParser.getNumberTypeFP());
@@ -51,14 +54,17 @@ public void testGetNumberTypeAndValue() throws Exception {
5154
Long longValue = Long.MAX_VALUE;
5255
IonValue ionLong = ion.newInt(longValue);
5356
IonParser longParser = ionFactory.createParser(EMPTY_READ_CTXT, ionLong);
57+
_verifyGetNumberTypeFail(longParser, "null");
5458
assertEquals(JsonToken.VALUE_NUMBER_INT, longParser.nextToken());
5559
assertEquals(JsonParser.NumberType.LONG, longParser.getNumberType());
5660
assertEquals(JsonParser.NumberTypeFP.UNKNOWN, intParser.getNumberTypeFP());
5761
assertEquals(longValue, longParser.getNumberValue());
62+
assertNull(longParser.nextToken());
5863

5964
BigInteger bigIntValue = new BigInteger(Long.MAX_VALUE + "1");
6065
IonValue ionBigInt = ion.newInt(bigIntValue);
6166
IonParser bigIntParser = ionFactory.createParser(EMPTY_READ_CTXT, ionBigInt);
67+
_verifyGetNumberTypeFail(bigIntParser, "null");
6268
assertEquals(JsonToken.VALUE_NUMBER_INT, bigIntParser.nextToken());
6369
assertEquals(JsonParser.NumberType.BIG_INTEGER, bigIntParser.getNumberType());
6470
assertEquals(JsonParser.NumberTypeFP.UNKNOWN, intParser.getNumberTypeFP());
@@ -67,6 +73,7 @@ public void testGetNumberTypeAndValue() throws Exception {
6773
Double decimalValue = Double.MAX_VALUE;
6874
IonValue ionDecimal = ion.newDecimal(decimalValue);
6975
IonParser decimalParser = ionFactory.createParser(EMPTY_READ_CTXT, ionDecimal);
76+
_verifyGetNumberTypeFail(decimalParser, "null");
7077
assertEquals(JsonToken.VALUE_NUMBER_FLOAT, decimalParser.nextToken());
7178
assertEquals(JsonParser.NumberType.BIG_DECIMAL, decimalParser.getNumberType());
7279
assertEquals(JsonParser.NumberTypeFP.BIG_DECIMAL, decimalParser.getNumberTypeFP());
@@ -75,6 +82,7 @@ public void testGetNumberTypeAndValue() throws Exception {
7582
Double floatValue = Double.MAX_VALUE;
7683
IonValue ionFloat = ion.newFloat(floatValue);
7784
IonParser floatParser = ionFactory.createParser(EMPTY_READ_CTXT, ionFloat);
85+
_verifyGetNumberTypeFail(floatParser, "null");
7886
assertEquals(JsonToken.VALUE_NUMBER_FLOAT, floatParser.nextToken());
7987
assertEquals(JsonParser.NumberType.DOUBLE, floatParser.getNumberType());
8088
// [dataformats-binary#490]: float coerces to double
@@ -84,6 +92,7 @@ public void testGetNumberTypeAndValue() throws Exception {
8492
BigDecimal bigDecimalValue = new BigDecimal(Double.MAX_VALUE + "1");
8593
IonValue ionBigDecimal = ion.newDecimal(bigDecimalValue);
8694
IonParser bigDecimalParser = ionFactory.createParser(EMPTY_READ_CTXT, ionBigDecimal);
95+
_verifyGetNumberTypeFail(bigDecimalParser, "null");
8796
assertEquals(JsonToken.VALUE_NUMBER_FLOAT, bigDecimalParser.nextToken());
8897
assertEquals(JsonParser.NumberType.BIG_DECIMAL, bigDecimalParser.getNumberType());
8998
assertEquals(JsonParser.NumberTypeFP.BIG_DECIMAL, bigDecimalParser.getNumberTypeFP());
@@ -147,9 +156,11 @@ public void testIonExceptionIsWrapped() throws Exception {
147156
assertThrows(StreamReadException.class, () -> {
148157
try (IonParser parser = (IonParser) ionFactory.createParser(EMPTY_READ_CTXT, "[ 12, true ) ]")) {
149158
assertEquals(JsonToken.START_ARRAY, parser.nextToken());
159+
_verifyGetNumberTypeFail(parser, "START_ARRAY");
150160
assertEquals(JsonToken.VALUE_NUMBER_INT, parser.nextValue());
151161
assertEquals(12, parser.getIntValue());
152162
assertEquals(JsonToken.VALUE_TRUE, parser.nextValue());
163+
_verifyGetNumberTypeFail(parser, "VALUE_TRUE");
153164
parser.nextValue();
154165
}
155166
});
@@ -198,4 +209,12 @@ public void testUnknownSymbolExceptionForAnnotationIsWrapped() throws Exception
198209
}
199210
});
200211
}
212+
213+
// 30-May-2025, tatu: NOTE: in 3.0 no longer expected to throw exception, just
214+
// return null (Ion backend did that in 2.x already fwtw, different from
215+
// other backends)
216+
private void _verifyGetNumberTypeFail(JsonParser p, String token) throws Exception
217+
{
218+
assertNull(p.getNumberType());
219+
}
201220
}

protobuf/src/test/java/tools/jackson/dataformat/protobuf/ReadSimpleProtobufTest.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,11 @@ public void testReadPointIntStreaming() throws Exception
9898
JsonParser p = MAPPER.reader()
9999
.with(schema)
100100
.createParser(bytes);
101+
102+
_verifyGetNumberTypeFail(p, "null");
101103
assertToken(JsonToken.START_OBJECT, p.nextToken());
102104
assertNull(p.currentName());
105+
_verifyGetNumberTypeFail(p, "START_OBJECT");
103106
assertToken(JsonToken.PROPERTY_NAME, p.nextToken());
104107
assertEquals("x", p.currentName());
105108
assertToken(JsonToken.VALUE_NUMBER_INT, p.nextToken());
@@ -114,8 +117,10 @@ public void testReadPointIntStreaming() throws Exception
114117
assertEquals(input.y, p.getIntValue());
115118
assertToken(JsonToken.END_OBJECT, p.nextToken());
116119
assertNull(p.currentName());
120+
_verifyGetNumberTypeFail(p, "END_OBJECT");
117121
p.close();
118122
assertNull(p.currentName());
123+
_verifyGetNumberTypeFail(p, "null");
119124
}
120125

121126
@Test
@@ -281,7 +286,7 @@ public void testStringArraySimple() throws Exception
281286
assertEquals("values", p.currentName());
282287

283288
// 23-May-2016, tatu: Not working properly yet:
284-
// assertEquals("{values}", p.getParsingContext().toString());
289+
// assertEquals("{values}", p.streamReadContext().toString());
285290

286291
assertToken(JsonToken.START_ARRAY, p.nextToken());
287292

@@ -476,4 +481,10 @@ public void testStringArraySimpleLowLimit() throws Exception
476481
"unexpected message: " + message);
477482
}
478483
}
484+
485+
private void _verifyGetNumberTypeFail(JsonParser p, String token) throws Exception
486+
{
487+
// In 2.x got exception; in 3.x null
488+
assertNull(p.getNumberType());
489+
}
479490
}

release-notes/VERSION-2.x

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Active maintainers:
2525
#587: (cbor) Allow exposing CBOR Simple values as `JsonToken.VALUE_EMBEDDED_OBJECT`
2626
with a feature flag
2727
(implementation contributed by Fawzi E)
28+
- Fixes wrt [core#1438] (ParserBase.close() not resetting current token)
2829
- Generate SBOMs [JSTEP-14]
2930

3031
2.19.1 (not yet released)

smile/src/test/java/tools/jackson/dataformat/smile/parse/SmileNumberParsingGetType1433Test.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ void getNumberType() throws Exception
4949
_verifyGetNumberTypeFail(p, "VALUE_TRUE");
5050
assertToken(JsonToken.END_ARRAY, p.nextToken());
5151
_verifyGetNumberTypeFail(p, "END_ARRAY");
52-
assertNull(p.nextToken());
53-
_verifyGetNumberTypeFail(p, "null");
5452
p.close();
5553
_verifyGetNumberTypeFail(p, "null");
5654
}

0 commit comments

Comments
 (0)