aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-06-21 12:54:10 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-06-21 12:54:10 -0700
commit6a3d88d2b686ae3fac7337d9fce15f0ab9f3672a (patch)
tree6fdf96005512d261bd1adf371bbd874707fdc7bf /src
parentb1237dcf988dd9f9b6bc03d9af8b796abeb9151b (diff)
downloadjackson-databind-6a3d88d2b686ae3fac7337d9fce15f0ab9f3672a.tar.gz
Minor tweak to consider Date/Time types as scalars wrt `MapperFeature.ALLOW_COERCION_OF_SCALARS`
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/fasterxml/jackson/databind/cfg/CoercionConfigs.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/cfg/CoercionConfigs.java b/src/main/java/com/fasterxml/jackson/databind/cfg/CoercionConfigs.java
index 094999b18..50fae96dc 100644
--- a/src/main/java/com/fasterxml/jackson/databind/cfg/CoercionConfigs.java
+++ b/src/main/java/com/fasterxml/jackson/databind/cfg/CoercionConfigs.java
@@ -203,11 +203,14 @@ public class CoercionConfigs
CoercionAction.TryConvert : CoercionAction.Fail;
}
- final boolean classicScalar = (targetType == LogicalType.Float)
+ // classic scalars are numbers, booleans; but date/time also considered
+ // scalar for this particular purpose
+ final boolean baseScalar = (targetType == LogicalType.Float)
|| (targetType == LogicalType.Integer)
- || (targetType == LogicalType.Boolean);
+ || (targetType == LogicalType.Boolean)
+ || (targetType == LogicalType.DateTime);
- if (classicScalar) {
+ if (baseScalar) {
// Default for setting in 2.x is true
if (!config.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS)) {
return CoercionAction.Fail;
@@ -217,8 +220,7 @@ public class CoercionConfigs
if (inputShape == CoercionInputShape.EmptyString) {
// Since coercion of scalar must be enabled (see check above), allow empty-string
// coercions by default even without this setting
- if (classicScalar
- || (targetType == LogicalType.DateTime)
+ if (baseScalar
// Default for setting is false
|| config.isEnabled(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT)) {
return CoercionAction.AsNull;