diff --git a/pom.xml b/pom.xml index 7ff575a4de..20b66411a1 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-mongodb-parent - 4.0.0-SNAPSHOT + 3.4.0-GH-4014-SNAPSHOT pom Spring Data MongoDB @@ -27,7 +27,7 @@ 16 multi spring-data-mongodb - 3.0.0-SNAPSHOT + 3.0.0-GH-2590-SNAPSHOT 4.5.1 ${mongo} 1.19 diff --git a/spring-data-mongodb-benchmarks/pom.xml b/spring-data-mongodb-benchmarks/pom.xml index c28a240d2c..ae6c5b92f3 100644 --- a/spring-data-mongodb-benchmarks/pom.xml +++ b/spring-data-mongodb-benchmarks/pom.xml @@ -7,7 +7,7 @@ org.springframework.data spring-data-mongodb-parent - 4.0.0-SNAPSHOT + 3.4.0-GH-4014-SNAPSHOT ../pom.xml diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml index 9b3e641ef5..f80417c7d4 100644 --- a/spring-data-mongodb-distribution/pom.xml +++ b/spring-data-mongodb-distribution/pom.xml @@ -14,7 +14,7 @@ org.springframework.data spring-data-mongodb-parent - 4.0.0-SNAPSHOT + 3.4.0-GH-4014-SNAPSHOT ../pom.xml diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml index 21f6e7925e..e2766975de 100644 --- a/spring-data-mongodb/pom.xml +++ b/spring-data-mongodb/pom.xml @@ -12,7 +12,7 @@ org.springframework.data spring-data-mongodb-parent - 4.0.0-SNAPSHOT + 3.4.0-GH-4014-SNAPSHOT ../pom.xml diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/MongoCustomConversions.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/MongoCustomConversions.java index 02d91fa08f..2e7f58a826 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/MongoCustomConversions.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/MongoCustomConversions.java @@ -156,7 +156,8 @@ public static class MongoConverterConfigurationAdapter { private boolean useNativeDriverJavaTimeCodecs = false; private final List customConverters = new ArrayList<>(); - private PropertyValueConversions propertyValueConversions = new SimplePropertyValueConversions(); + private PropertyValueConversions propertyValueConversions = PropertyValueConversions.simple(it -> {}); + private PropertyValueConversions internallyCreatedValueConversion = propertyValueConversions; /** * Create a {@link MongoConverterConfigurationAdapter} using the provided {@code converters} and our own codecs for @@ -317,7 +318,7 @@ public MongoConverterConfigurationAdapter setPropertyValueConversions(PropertyVa PropertyValueConversions valueConversions() { if (this.propertyValueConversions == null) { - this.propertyValueConversions = new SimplePropertyValueConversions(); + this.propertyValueConversions = PropertyValueConversions.simple(it -> {}); } return this.propertyValueConversions; @@ -325,6 +326,10 @@ PropertyValueConversions valueConversions() { ConverterConfiguration createConverterConfiguration() { + if(isLocallyCreatedPropertyValueConversion() && propertyValueConversions instanceof SimplePropertyValueConversions svc) { + svc.init(); + } + if (!useNativeDriverJavaTimeCodecs) { return new ConverterConfiguration(STORE_CONVERSIONS, this.customConverters, convertiblePair -> true, this.propertyValueConversions); @@ -381,5 +386,9 @@ public LocalDate convert(Date source) { return DateToUtcLocalDateTimeConverter.INSTANCE.convert(source).toLocalDate(); } } + + private boolean isLocallyCreatedPropertyValueConversion() { + return propertyValueConversions == internallyCreatedValueConversion; + } } }