From 986203833ac13ba71892e6b523e501adfe003e0f Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Thu, 24 Mar 2011 15:50:18 +0100 Subject: [PATCH] Fixed potential NullPointer. --- .../mongodb/convert/MappingMongoConverter.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java index 5bb7f73d8..18ecd6e81 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java @@ -569,11 +569,12 @@ public class MappingMongoConverter implements MongoConverter, ApplicationContext } return Arrays.asList(items); } + + Class toType = findTypeToBeUsed((DBObject) dbObj); // It's a complex object, have to read it in - if (dbo.containsField("_class")) { - Class toType = findTypeToBeUsed((DBObject) dbObj); - dbo.removeField("_class"); + if (toType != null) { + dbo.removeField(CUSTOM_TYPE_KEY); o = read(toType, (DBObject) dbObj); } else { o = read(mappingContext.getPersistentEntity(prop.getTypeInformation()), (DBObject) dbObj); @@ -593,7 +594,11 @@ public class MappingMongoConverter implements MongoConverter, ApplicationContext */ protected Class findTypeToBeUsed(DBObject dbObject) { Object classToBeUsed = dbObject.get(CUSTOM_TYPE_KEY); - + + if (classToBeUsed == null) { + return null; + } + try { return Class.forName(classToBeUsed.toString()); } catch (ClassNotFoundException e) {