diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupport.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupport.java index 8c540fe98..3057b3899 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupport.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupport.java @@ -186,8 +186,7 @@ class ExecutableFindOperationSupport implements ExecutableFindOperation { @Override public FindIterable prepare(FindIterable cursor) { - FindIterable target = delegate.prepare(cursor); - + FindIterable target = delegate != null ? delegate.prepare(cursor) : cursor; return limit.map(target::limit).orElse(target); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java index 1a33fd7a7..79cbc1042 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java @@ -213,6 +213,11 @@ public class ExecutableFindOperationSupportTests { assertThat(results.getContent().get(0).getContent().getId()).isEqualTo("alderan"); } + @Test // DATAMONGO-1728 + public void firstShouldReturnFirstEntryInCollection() { + assertThat(template.query(Person.class).first()).isNotEmpty(); + } + @Data @org.springframework.data.mongodb.core.mapping.Document(collection = STAR_WARS) static class Person {