From 135742b7e4e028aa3e626ede5105d1e24d2eba47 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 7 Sep 2011 15:37:34 +0200 Subject: [PATCH] Fixed potential NullPointException in debug level in MongoQueryCreator. --- .../data/mongodb/repository/MongoQueryCreator.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/MongoQueryCreator.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/MongoQueryCreator.java index 5da44a038..d018d491b 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/MongoQueryCreator.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/MongoQueryCreator.java @@ -19,8 +19,6 @@ import static org.springframework.data.mongodb.core.query.Criteria.*; import java.util.Collection; import java.util.Iterator; -import java.util.regex.Pattern; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.data.domain.Sort; @@ -123,6 +121,10 @@ class MongoQueryCreator extends AbstractQueryCreator { */ @Override protected Query complete(Query query, Sort sort) { + + if (query == null) { + return null; + } QueryUtils.applySorting(query, sort); @@ -160,7 +162,7 @@ class MongoQueryCreator extends AbstractQueryCreator { return criteria.in(nextAsArray(parameters)); case LIKE: String value = parameters.next().toString(); - return criteria.is(toLikeRegex(value)); + return criteria.regex(toLikeRegex(value)); case NEAR: Distance distance = accessor.getMaxDistance(); @@ -227,9 +229,8 @@ class MongoQueryCreator extends AbstractQueryCreator { return new Object[] { next }; } - private Pattern toLikeRegex(String source) { + private String toLikeRegex(String source) { - String regex = source.replaceAll("\\*", ".*"); - return Pattern.compile(regex); + return source.replaceAll("\\*", ".*"); } } \ No newline at end of file