Skip to content

Commit eeb266d

Browse files
committed
Merge branch '2.11' into 2.12
2 parents 264f51c + b5e5543 commit eeb266d

File tree

5 files changed

+24
-6
lines changed

5 files changed

+24
-6
lines changed

release-notes/CREDITS-2.x

+5
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,11 @@ James Agnew (jamesagnew@github)
241241
* Contributed implementation of #611: Optionally allow leading decimal in float tokens
242242
(2.11.0)
243243

244+
Pavel Krutikhin (pakru@github)
245+
* Contributed fix for #647: Fix NPE in `writeNumber(String)` method of `UTF8JsonGenerator`,
246+
`WriterBasedJsonGenerator`
247+
(2.11.4)
248+
244249
Pavan Kalyan (pavan-kalyan@github)
245250
* Contributed #500: Allow "optional-padding" for `Base64Variant`
246251
(2.12.0)

release-notes/VERSION-2.x

+6
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ JSON library.
3030
#640: Add `JacksonException` as parent class of `JsonProcessingException`
3131
- Deprecate `JsonParser.getCurrentTokenId()` (use `#currentTokenId()` instead)
3232

33+
2.11.4 (not yet released)
34+
35+
#647: Fix NPE in `writeNumber(String)` method of `UTF8JsonGenerator`,
36+
`WriterBasedJsonGenerator`
37+
(contributed by Pavel K)
38+
3339
2.11.3 (02-Oct-2020)
3440
2.11.2 (02-Aug-2020)
3541
2.11.1 (25-Jun-2020)

src/main/java/com/fasterxml/jackson/core/json/UTF8JsonGenerator.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1069,7 +1069,9 @@ public void writeNumber(BigDecimal value) throws IOException
10691069
public void writeNumber(String encodedValue) throws IOException
10701070
{
10711071
_verifyValueWrite(WRITE_NUMBER);
1072-
if (_cfgNumbersAsStrings) {
1072+
if (encodedValue == null) {
1073+
_writeNull();
1074+
} else if (_cfgNumbersAsStrings) {
10731075
_writeQuotedRaw(encodedValue);
10741076
} else {
10751077
writeRaw(encodedValue);

src/main/java/com/fasterxml/jackson/core/json/WriterBasedJsonGenerator.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -844,7 +844,9 @@ public void writeNumber(BigDecimal value) throws IOException
844844
public void writeNumber(String encodedValue) throws IOException
845845
{
846846
_verifyValueWrite(WRITE_NUMBER);
847-
if (_cfgNumbersAsStrings) {
847+
if (encodedValue == null) {
848+
_writeNull();
849+
} else if (_cfgNumbersAsStrings) {
848850
_writeQuotedRaw(encodedValue);
849851
} else {
850852
writeRaw(encodedValue);

src/test/java/com/fasterxml/jackson/core/json/GeneratorFeaturesTest.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,16 @@ public void testNumbersAsJSONStrings() throws IOException
9595
{
9696
JsonFactory f = new JsonFactory();
9797
// by default should output numbers as-is:
98-
assertEquals("[1,2,3,1.25,2.25,3001,0.5,-1,12.3]", _writeNumbers(f, false));
99-
assertEquals("[1,2,3,1.25,2.25,3001,0.5,-1,12.3]", _writeNumbers(f, true));
98+
assertEquals("[1,2,3,1.25,2.25,3001,0.5,-1,12.3,null,null,null]", _writeNumbers(f, false));
99+
assertEquals("[1,2,3,1.25,2.25,3001,0.5,-1,12.3,null,null,null]", _writeNumbers(f, true));
100100

101101
// but if overridden, quotes as Strings
102102
f = JsonFactory.builder()
103103
.enable(JsonWriteFeature.WRITE_NUMBERS_AS_STRINGS)
104104
.build();
105-
assertEquals("[\"1\",\"2\",\"3\",\"1.25\",\"2.25\",\"3001\",\"0.5\",\"-1\",\"12.3\"]",
105+
assertEquals("[\"1\",\"2\",\"3\",\"1.25\",\"2.25\",\"3001\",\"0.5\",\"-1\",\"12.3\",null,null,null]",
106106
_writeNumbers(f, false));
107-
assertEquals("[\"1\",\"2\",\"3\",\"1.25\",\"2.25\",\"3001\",\"0.5\",\"-1\",\"12.3\"]",
107+
assertEquals("[\"1\",\"2\",\"3\",\"1.25\",\"2.25\",\"3001\",\"0.5\",\"-1\",\"12.3\",null,null,null]",
108108
_writeNumbers(f, true));
109109

110110

@@ -228,6 +228,9 @@ private String _writeNumbers(JsonFactory f, boolean useBytes) throws IOException
228228
g.writeNumber(BigDecimal.valueOf(0.5));
229229
g.writeNumber("-1");
230230
g.writeNumber(new char[]{'1', '2', '.', '3', '-'}, 0, 4);
231+
g.writeNumber((String) null);
232+
g.writeNumber((BigDecimal) null);
233+
g.writeNumber((BigInteger) null);
231234
g.writeEndArray();
232235
g.close();
233236

0 commit comments

Comments
 (0)