Skip to content

Commit 7d53f21

Browse files
EdwardPrenticechristophstrobl
authored andcommitted
DATAMONGO-1608 - Add guard against NPE in MongoQueryCreator when using IgnoreCase.
Original Pull Request: #439
1 parent 0000a8f commit 7d53f21

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryCreator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
* @author Oliver Gierke
5656
* @author Thomas Darimont
5757
* @author Christoph Strobl
58+
* @author Edward Prentice
5859
*/
5960
class MongoQueryCreator extends AbstractQueryCreator<Query, Criteria> {
6061

@@ -299,7 +300,9 @@ private Criteria createLikeRegexCriteriaOrThrow(Part part, MongoPersistentProper
299300
criteria = criteria.not();
300301
}
301302

302-
return addAppropriateLikeRegexTo(criteria, part, parameters.next().toString());
303+
Object next = parameters.next();
304+
305+
return addAppropriateLikeRegexTo(criteria, part, next != null ? next.toString() : "");
303306

304307
case NEVER:
305308
// intentional no-op

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
* @author Christoph Strobl
6767
* @author Mark Paluch
6868
* @author Fırat KÜÇÜK
69+
* @author Edward Prentice
6970
*/
7071
@RunWith(SpringJUnit4ClassRunner.class)
7172
public abstract class AbstractPersonRepositoryIntegrationTests {
@@ -653,6 +654,14 @@ public void executesGeoPageQueryForWithPageRequestForJustOneElementEmptyPage() {
653654
assertThat(results.getAverageDistance().getMetric(), is((Metric) Metrics.KILOMETERS));
654655
}
655656

657+
@Test // DATAMONGO-1608
658+
public void findByFirstNameIgnoreCaseWithNull() {
659+
660+
List<Person> result = repository.findByFirstnameIgnoreCase(null);
661+
662+
assertThat(result.size(), is(0));
663+
}
664+
656665
@Test // DATAMONGO-770
657666
public void findByFirstNameIgnoreCase() {
658667

0 commit comments

Comments
 (0)