diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/AbstractMongoConverter.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/AbstractMongoConverter.java index 15d357948..4dc9c500b 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/AbstractMongoConverter.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/AbstractMongoConverter.java @@ -109,6 +109,11 @@ public abstract class AbstractMongoConverter implements MongoConverter, Initiali @SuppressWarnings("unchecked") public Object maybeConvertObject(Object obj) { + + if (obj == null) { + return null; + } + if (obj instanceof Enum) { return ((Enum) obj).name(); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java index ab0f601e2..07f74dc0b 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java @@ -446,6 +446,14 @@ public class MappingMongoConverterUnitTests { assertThat(result, is(ClassWithSortedMap.class)); assertThat(result.map, is(SortedMap.class)); } + + /** + * @see DATADOC-211 + */ + @Test + public void maybeConvertHandlesNullValuesCorrectly() { + assertThat(converter.maybeConvertObject(null), is(nullValue())); + } class ClassWithEnumProperty {