Skip to content

Commit 8771ed4

Browse files
committed
Merge branch '2.8'
2 parents fc41d63 + 88b2086 commit 8771ed4

File tree

4 files changed

+687
-8
lines changed

4 files changed

+687
-8
lines changed

release-notes/VERSION

+4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ Project: jackson-databind
3535
(contributed by jdmichal@github)
3636
#1444: Change `ObjectMapper.setSerializationInclusion()` to apply to content inclusion too
3737

38+
2.8.6 (not yet released)
39+
40+
#1453: `UntypedObjectDeserializer` does not retain `float` type (over `double`)
41+
3842
2.8.5 (14-Nov-2016)
3943

4044
#1417: Further issues with `@JsonInclude` with `NON_DEFAULT`

src/main/java/com/fasterxml/jackson/databind/deser/std/NumberDeserializers.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOEx
430430
if (ctxt.isEnabled(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS)) {
431431
return p.getDecimalValue();
432432
}
433-
return Double.valueOf(p.getDoubleValue());
433+
return p.getNumberValue();
434434

435435
case JsonTokenId.ID_STRING:
436436
/* Textual values are more difficult... not parsing itself, but figuring

src/main/java/com/fasterxml/jackson/databind/deser/std/UntypedObjectDeserializer.java

+6-7
Original file line numberDiff line numberDiff line change
@@ -250,13 +250,12 @@ public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOEx
250250
if (_numberDeserializer != null) {
251251
return _numberDeserializer.deserialize(p, ctxt);
252252
}
253-
/* [JACKSON-72]: need to allow overriding the behavior regarding
254-
* which type to use
255-
*/
253+
// Need to allow overriding the behavior regarding which type to use
256254
if (ctxt.isEnabled(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS)) {
257255
return p.getDecimalValue();
258256
}
259-
return p.getDoubleValue();
257+
// as per [databind#1453] should not assume Double but:
258+
return p.getNumberValue();
260259

261260
case JsonTokenId.ID_TRUE:
262261
return Boolean.TRUE;
@@ -312,7 +311,7 @@ public Object deserializeWithType(JsonParser p, DeserializationContext ctxt, Typ
312311
if (ctxt.isEnabled(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS)) {
313312
return p.getDecimalValue();
314313
}
315-
return Double.valueOf(p.getDoubleValue());
314+
return p.getNumberValue();
316315

317316
case JsonTokenId.ID_TRUE:
318317
return Boolean.TRUE;
@@ -523,7 +522,7 @@ public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOEx
523522
if (ctxt.isEnabled(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS)) {
524523
return p.getDecimalValue();
525524
}
526-
return Double.valueOf(p.getDoubleValue());
525+
return p.getNumberValue();
527526

528527
case JsonTokenId.ID_TRUE:
529528
return Boolean.TRUE;
@@ -566,7 +565,7 @@ public Object deserializeWithType(JsonParser p, DeserializationContext ctxt, Typ
566565
if (ctxt.isEnabled(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS)) {
567566
return p.getDecimalValue();
568567
}
569-
return Double.valueOf(p.getDoubleValue());
568+
return p.getNumberValue();
570569

571570
case JsonTokenId.ID_TRUE:
572571
return Boolean.TRUE;

0 commit comments

Comments
 (0)