diff --git a/pom.xml b/pom.xml
index 75fa63795e..ba2a72f9c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 1.11.0.BUILD-SNAPSHOT
+ 1.11.0.DATAMONGO-1421-SNAPSHOT
pom
Spring Data MongoDB
diff --git a/spring-data-mongodb-cross-store/pom.xml b/spring-data-mongodb-cross-store/pom.xml
index dc5a04a7ad..35f66a2d78 100644
--- a/spring-data-mongodb-cross-store/pom.xml
+++ b/spring-data-mongodb-cross-store/pom.xml
@@ -6,7 +6,7 @@
org.springframework.data
spring-data-mongodb-parent
- 1.11.0.BUILD-SNAPSHOT
+ 1.11.0.DATAMONGO-1421-SNAPSHOT
../pom.xml
@@ -48,7 +48,7 @@
org.springframework.data
spring-data-mongodb
- 1.11.0.BUILD-SNAPSHOT
+ 1.11.0.DATAMONGO-1421-SNAPSHOT
diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml
index 9876e11ee3..6263efc578 100644
--- a/spring-data-mongodb-distribution/pom.xml
+++ b/spring-data-mongodb-distribution/pom.xml
@@ -13,7 +13,7 @@
org.springframework.data
spring-data-mongodb-parent
- 1.11.0.BUILD-SNAPSHOT
+ 1.11.0.DATAMONGO-1421-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb-log4j/pom.xml b/spring-data-mongodb-log4j/pom.xml
index c0436bac90..670362e46e 100644
--- a/spring-data-mongodb-log4j/pom.xml
+++ b/spring-data-mongodb-log4j/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 1.11.0.BUILD-SNAPSHOT
+ 1.11.0.DATAMONGO-1421-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml
index ea1b594b99..aa0215c188 100644
--- a/spring-data-mongodb/pom.xml
+++ b/spring-data-mongodb/pom.xml
@@ -11,7 +11,7 @@
org.springframework.data
spring-data-mongodb-parent
- 1.11.0.BUILD-SNAPSHOT
+ 1.11.0.DATAMONGO-1421-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Query.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Query.java
index cd2668baee..bf2a39cdaa 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Query.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Query.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2016 the original author or authors.
+ * Copyright 2010-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -97,7 +97,7 @@ public Query addCriteria(CriteriaDefinition criteriaDefinition) {
} else {
throw new InvalidMongoDbApiUsageException(
"Due to limitations of the com.mongodb.BasicDBObject, " + "you can't add a second '" + key + "' criteria. "
- + "Query already contains '" + existing.getCriteriaObject() + "'.");
+ + "Query already contains '" + serializeToJsonSafely(existing.getCriteriaObject()) + "'.");
}
return this;
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java
index a152374e16..5c7b384a13 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java
@@ -33,11 +33,12 @@
/**
* Unit tests for {@link Query}.
- *
+ *
* @author Thomas Risberg
* @author Oliver Gierke
* @author Patryk Wasik
* @author Thomas Darimont
+ * @author Christoph Strobl
*/
public class QueryTests {
@@ -204,4 +205,20 @@ public void shouldReturnClassHierarchyOfRestrictedTypes() {
assertThat(query.getRestrictedTypes().size(), is(1));
assertThat(query.getRestrictedTypes(), hasItems(Arrays.asList(SpecialDoc.class).toArray(new Class>[0])));
}
+
+ @Test // DATAMONGO-1421
+ public void addCriteriaForSamePropertyMultipleTimesShouldThrowAndSafelySerializeErrorMessage() {
+
+ exception.expect(InvalidMongoDbApiUsageException.class);
+ exception.expectMessage("second 'value' criteria");
+ exception.expectMessage("already contains '{ \"value\" : { $java : VAL_1 } }'");
+
+ Query query = new Query();
+ query.addCriteria(where("value").is(EnumType.VAL_1));
+ query.addCriteria(where("value").is(EnumType.VAL_2));
+ }
+
+ enum EnumType {
+ VAL_1, VAL_2
+ }
}