Browse Source

Polishing.

Minor formatting.
Replaced a while loop that ends with a return with an if.

See: #5095
pull/5109/head
Jens Schauder 1 month ago committed by Christoph Strobl
parent
commit
472e3674a3
No known key found for this signature in database
GPG Key ID: E6054036D0C37A4B
  1. 11
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/util/json/ParameterBindingJsonReader.java
  2. 2
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java

11
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/util/json/ParameterBindingJsonReader.java

@ -70,8 +70,13 @@ public class ParameterBindingJsonReader extends AbstractBsonReader { @@ -70,8 +70,13 @@ public class ParameterBindingJsonReader extends AbstractBsonReader {
private static final Pattern PARAMETER_BINDING_PATTERN = Pattern.compile("\\?(\\d+)");
private static final Pattern EXPRESSION_BINDING_PATTERN = Pattern.compile("[\\?:][#$]\\{.*\\}");
private static final Pattern SPEL_PARAMETER_BINDING_PATTERN = Pattern.compile("('\\?(\\d+)'|\\?(\\d+))");
private static final String QUOTE_START = "\\Q";
private static final String ESCAPED_QUOTE_START = "\\" + QUOTE_START;
private static final String QUOTE_REPLACEMENT_QUOTE_START = Matcher.quoteReplacement(ESCAPED_QUOTE_START);
private static final String QUOTE_END = "\\E";
private static final String ESCAPED_QUOTE_END = "\\" + QUOTE_END;
private static final String QUOTE_REPLACEMENT_QUOTE_END = Matcher.quoteReplacement(ESCAPED_QUOTE_END);
private final ParameterBindingContext bindingContext;
@ -423,7 +428,7 @@ public class ParameterBindingJsonReader extends AbstractBsonReader { @@ -423,7 +428,7 @@ public class ParameterBindingJsonReader extends AbstractBsonReader {
Matcher regexMatcher = EXPRESSION_BINDING_PATTERN.matcher(computedValue);
while (regexMatcher.find()) {
if (regexMatcher.find()) {
String binding = regexMatcher.group();
String expression = binding.substring(3, binding.length() - 1);
@ -463,8 +468,8 @@ public class ParameterBindingJsonReader extends AbstractBsonReader { @@ -463,8 +468,8 @@ public class ParameterBindingJsonReader extends AbstractBsonReader {
String bindValue = nullSafeToString(getBindableValueForIndex(index));
if(isQuoted(tokenValue)) {
bindValue = bindValue.replaceAll("\\%s".formatted(QUOTE_START), Matcher.quoteReplacement("\\%s".formatted(QUOTE_START))) //
.replaceAll("\\%s".formatted(QUOTE_END), Matcher.quoteReplacement("\\%s".formatted(QUOTE_END)));
bindValue = bindValue.replaceAll(ESCAPED_QUOTE_START, QUOTE_REPLACEMENT_QUOTE_START) //
.replaceAll(ESCAPED_QUOTE_END, QUOTE_REPLACEMENT_QUOTE_END);
}
computedValue = computedValue.replace(group, bindValue);
}

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

@ -826,7 +826,7 @@ public abstract class AbstractPersonRepositoryIntegrationTests implements Dirtie @@ -826,7 +826,7 @@ public abstract class AbstractPersonRepositoryIntegrationTests implements Dirtie
assertThat(result.get(0)).isEqualTo(dave);
}
@Test // DATAMONGO-770
@Test
void findByFirstnameStartingWith() {
String inputString = "\\E.*\\Q";

Loading…
Cancel
Save