diff --git a/pom.xml b/pom.xml
index 5d28c8a5c5..ef95d3a91e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.3.0-SNAPSHOT
+ 3.3.0-GH-3811-SNAPSHOT
pom
Spring Data MongoDB
diff --git a/spring-data-mongodb-benchmarks/pom.xml b/spring-data-mongodb-benchmarks/pom.xml
index 0033bd11d5..d68cce7bc3 100644
--- a/spring-data-mongodb-benchmarks/pom.xml
+++ b/spring-data-mongodb-benchmarks/pom.xml
@@ -7,7 +7,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.3.0-SNAPSHOT
+ 3.3.0-GH-3811-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml
index f62c8dc7f4..24976dda63 100644
--- a/spring-data-mongodb-distribution/pom.xml
+++ b/spring-data-mongodb-distribution/pom.xml
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.3.0-SNAPSHOT
+ 3.3.0-GH-3811-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml
index 1f157e75bc..663666bdb4 100644
--- a/spring-data-mongodb/pom.xml
+++ b/spring-data-mongodb/pom.xml
@@ -11,7 +11,7 @@
org.springframework.data
spring-data-mongodb-parent
- 3.3.0-SNAPSHOT
+ 3.3.0-GH-3811-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Field.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Field.java
index 0561bbdca6..02450505b6 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Field.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Field.java
@@ -15,6 +15,7 @@
*/
package org.springframework.data.mongodb.core.query;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
@@ -192,7 +193,7 @@ public Field slice(String field, int size) {
*/
public Field slice(String field, int offset, int size) {
- slices.put(field, new Integer[] { offset, size });
+ slices.put(field, Arrays.asList(offset, size));
return this;
}
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 28cdaa4830..33ae0ef994 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
@@ -3768,6 +3768,23 @@ void shouldFindSubdocumentWithNullCorrectly() {
assertThat(loaded).isNotNull();
}
+ @Test // GH-3811
+ public void sliceShouldLimitCollectionValues() {
+
+ DocumentWithCollectionOfSimpleType source = new DocumentWithCollectionOfSimpleType();
+ source.id = "id-1";
+ source.values = Arrays.asList("spring", "data", "mongodb");
+
+ template.save(source);
+
+ Criteria criteria = Criteria.where("id").is(source.id);
+ Query query = Query.query(criteria);
+ query.fields().slice("values", 0, 1);
+ DocumentWithCollectionOfSimpleType target = template.findOne(query, DocumentWithCollectionOfSimpleType.class);
+
+ assertThat(target.values).containsExactly("spring");
+ }
+
private AtomicReference createAfterSaveReference() {
AtomicReference saved = new AtomicReference<>();