Skip to content

Commit 115b981

Browse files
committed
Fix PMD reported problems
1 parent eb83fe8 commit 115b981

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/query/antlr/HSqlQueryExecutor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737

3838
public class HSqlQueryExecutor<T>
3939
{
40+
protected static final DateTimeFormatter LOCAL_DATE_REPLACE_DTF = DateTimeFormatter.ofPattern("yyyy-MM-dd");
41+
4042
private final SQLParser<T> parser;
4143
private final EntityListProvider entityListProvider;
4244
private final Class<T> domainClass;
@@ -80,7 +82,7 @@ private String replacePlaceholders(final String sqlValue, final Object[] paramet
8082
}
8183
if(parameters[i] instanceof final LocalDate localDate)
8284
{
83-
value = localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
85+
value = localDate.format(LOCAL_DATE_REPLACE_DTF);
8486
}
8587
stringWithReplacedValues = stringWithReplacedValues.replaceAll(placeholder, value);
8688
}

spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/query/criteria/CriteriaByExample.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717

1818
import java.lang.reflect.Field;
1919
import java.util.Collection;
20+
import java.util.Collections;
2021
import java.util.Locale;
2122
import java.util.Map;
2223
import java.util.Objects;
2324
import java.util.Optional;
25+
import java.util.WeakHashMap;
2426
import java.util.function.BiPredicate;
2527
import java.util.function.Predicate;
2628
import java.util.regex.Pattern;
@@ -38,6 +40,7 @@
3840
*/
3941
public class CriteriaByExample<T, S extends T> implements Criteria<T>
4042
{
43+
private static final Map<String, Pattern> REGEX_EXAMPLE_CACHE = Collections.synchronizedMap(new WeakHashMap<>());
4144
private final Predicate<T> predicate;
4245

4346
public CriteriaByExample(final Example<S> example)
@@ -143,7 +146,9 @@ private boolean createPredicateForStringMatcher(
143146
case STARTING -> String::startsWith;
144147
case ENDING -> String::endsWith;
145148
case CONTAINING -> String::contains;
146-
case REGEX -> (v, example) -> Pattern.compile(example).matcher(v).find();
149+
case REGEX -> (v, example) -> REGEX_EXAMPLE_CACHE.computeIfAbsent(example, Pattern::compile)
150+
.matcher(v)
151+
.find();
147152
default -> null;
148153
};
149154

0 commit comments

Comments
 (0)