aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-07-09 21:00:23 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-07-09 21:00:23 -0700
commit1369c51957f81470579272c962f1ca755e51470f (patch)
tree617c9da4dce55455754346bf1b439d73bd693e92 /src/main/java
parent3dec03cff1f222bb947549615b2d097234b24088 (diff)
downloadjackson-databind-1369c51957f81470579272c962f1ca755e51470f.tar.gz
Fixed #2784 (and #2644)
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/fasterxml/jackson/databind/util/TokenBuffer.java14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/util/TokenBuffer.java b/src/main/java/com/fasterxml/jackson/databind/util/TokenBuffer.java
index 8145f71a3..8fa86e7df 100644
--- a/src/main/java/com/fasterxml/jackson/databind/util/TokenBuffer.java
+++ b/src/main/java/com/fasterxml/jackson/databind/util/TokenBuffer.java
@@ -1228,16 +1228,10 @@ sb.append("NativeObjectIds=").append(_hasNativeObjectIds).append(",");
if (_forceBigDecimal) {
writeNumber(p.getDecimalValue());
} else {
- switch (p.getNumberType()) {
- case BIG_DECIMAL:
- writeNumber(p.getDecimalValue());
- break;
- case FLOAT:
- writeNumber(p.getFloatValue());
- break;
- default:
- writeNumber(p.getDoubleValue());
- }
+ // 09-Jul-2020, tatu: Used to just copy using most optimal method, but
+ // issues like [databind#2644] force to use exact, not optimal type
+ final Number n = p.getNumberValueExact();
+ _appendValue(JsonToken.VALUE_NUMBER_FLOAT, n);
}
break;
case VALUE_TRUE: