From efa529a7a6c778da5c7ed24ba23079393aafab3b Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Mon, 27 May 2019 08:39:30 +0200 Subject: [PATCH] DATACMNS-1540 - Use thread-safe path cache in QuerydslPredicateBuilder. We now use ConcurrentHashMap instead of HashMap to cache Path instances by PathInformation. --- .../data/querydsl/binding/QuerydslPredicateBuilder.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilder.java b/src/main/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilder.java index 14dfe9c67..2ceda2ac3 100644 --- a/src/main/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilder.java +++ b/src/main/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilder.java @@ -19,11 +19,11 @@ import java.beans.PropertyDescriptor; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; import org.springframework.beans.PropertyValues; import org.springframework.core.convert.ConversionService; @@ -46,6 +46,7 @@ import com.querydsl.core.types.Predicate; * * @author Christoph Strobl * @author Oliver Gierke + * @author Mark Paluch * @since 1.11 */ public class QuerydslPredicateBuilder { @@ -68,7 +69,7 @@ public class QuerydslPredicateBuilder { this.defaultBinding = new QuerydslDefaultBinding(); this.conversionService = conversionService; - this.paths = new HashMap<>(); + this.paths = new ConcurrentHashMap<>(); this.resolver = resolver; }