diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/TemplateFactory.java b/querydsl-core/src/main/java/com/querydsl/core/types/TemplateFactory.java index 3f661948f..4fec91ca4 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/TemplateFactory.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/TemplateFactory.java @@ -23,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; +import java.util.WeakHashMap; import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -58,7 +58,7 @@ public class TemplateFactory { + "([slu%]?%?)" + "\\}"); - private final Map cache = new ConcurrentHashMap(); + private final Map cache = Collections.synchronizedMap(new WeakHashMap<>());; private final char escape;