From 9bcd19866f23497460f06229d1bc180eb200b41e Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Mon, 25 Jul 2011 14:37:30 +0200 Subject: [PATCH] =?UTF-8?q?DATADOC-211=20-=20Guard=20potential=20NullPoint?= =?UTF-8?q?erException=20in=20AbstractMongoConverter.maybeConvertObject(?= =?UTF-8?q?=E2=80=A6).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quickfix, will probably undergo a deeper cleanup as part of DATADOC-214. --- .../data/mongodb/core/convert/AbstractMongoConverter.java | 5 +++++ .../core/convert/MappingMongoConverterUnitTests.java | 8 ++++++++ 2 files changed, 13 insertions(+) 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 {