From b2f82bb5bfab030888ab2172b51bb7eeac910cd8 Mon Sep 17 00:00:00 2001 From: Michal Vich Date: Wed, 23 Jan 2013 17:46:30 +0000 Subject: [PATCH] =?UTF-8?q?DATAMONGO-568=20-=20MongoTemplate.find(?= =?UTF-8?q?=E2=80=A6)=20does=20not=20throw=20NullPointerException=20anymor?= =?UTF-8?q?e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Trigger findAll(…) if the Query object given to a find(…) method is null. --- .../data/mongodb/core/MongoTemplate.java | 9 +++++++-- .../data/mongodb/core/MongoTemplateTests.java | 10 ++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java index 8f7425ce5..0ca706ede 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java @@ -487,8 +487,13 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware { } public List find(final Query query, Class entityClass, String collectionName) { - CursorPreparer cursorPreparer = query == null ? null : new QueryCursorPreparer(query); - return doFind(collectionName, query.getQueryObject(), query.getFieldsObject(), entityClass, cursorPreparer); + + if (query == null) { + return findAll(entityClass, collectionName); + } + + return doFind(collectionName, query.getQueryObject(), query.getFieldsObject(), entityClass, + new QueryCursorPreparer(query)); } public T findById(Object id, Class entityClass) { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java index 244d711d1..54275e818 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java @@ -1445,6 +1445,16 @@ public class MongoTemplateTests { assertThat(person.version, is(0)); } + /** + * @see DATAMONGO-568 + */ + @Test + public void queryCantBeNull() { + + List result = template.findAll(PersonWithIdPropertyOfTypeObjectId.class); + assertThat(template.find(null, PersonWithIdPropertyOfTypeObjectId.class), is(result)); + } + static class MyId { String first;