Skip to content

Commit 806816e

Browse files
committed
lookup message cache
1 parent f3b4730 commit 806816e

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

validator/src/main/java/io/avaje/validation/core/DResourceBundleManager.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ final class DResourceBundleManager {
1616
private final Map<Locale, List<ResourceBundle>> map = new HashMap<>();
1717
private static final List<ResourceBundle> EMPTY = List.of();
1818
private static final String DEFAULT_BUNDLE = "io.avaje.validation.Messages";
19-
private final Map<String, String> messageCache = new HashMap<>();
2019

2120
DResourceBundleManager(
2221
List<String> names, List<ResourceBundle> providedBundles, LocaleResolver localeResolver) {
@@ -62,16 +61,12 @@ private void addBundle(final String name, final Locale locale) {
6261
@Nullable
6362
public String message(String template, Locale resolvedLocale) {
6463

65-
return messageCache.computeIfAbsent(
66-
template + resolvedLocale,
67-
k -> {
68-
for (final var bundle : map.getOrDefault(resolvedLocale, EMPTY)) {
64+
for (final var bundle : map.getOrDefault(resolvedLocale, EMPTY)) {
6965

70-
if (bundle.containsKey(template)) {
71-
return bundle.getString(template);
72-
}
73-
}
74-
return null;
75-
});
66+
if (bundle.containsKey(template)) {
67+
return bundle.getString(template);
68+
}
69+
}
70+
return null;
7671
}
7772
}

validator/src/main/java/io/avaje/validation/core/DTemplateLookup.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package io.avaje.validation.core;
22

3+
import java.util.HashMap;
34
import java.util.Locale;
5+
import java.util.Map;
46

57
final class DTemplateLookup {
68
private final DResourceBundleManager bundleManager;
9+
private final Map<String, String> messageCache = new HashMap<>();
710

811
DTemplateLookup(DResourceBundleManager defaultBundle) {
912
this.bundleManager = defaultBundle;
@@ -15,7 +18,9 @@ String lookup(String template, Locale resolvedLocale) {
1518
}
1619
final String key = template.substring(1, template.length() - 1);
1720

18-
final String msg = bundleManager.message(key, resolvedLocale);
21+
final String msg =
22+
messageCache.computeIfAbsent(
23+
key + resolvedLocale, k -> bundleManager.message(key, resolvedLocale));
1924
if (msg != null) {
2025
return msg;
2126
}

0 commit comments

Comments
 (0)