Skip to content

Commit b4191a7

Browse files
committed
Change internal adapterCache to use ConcurrentHashMap
1 parent 20c7202 commit b4191a7

File tree

1 file changed

+3
-11
lines changed

1 file changed

+3
-11
lines changed

jsonb/src/main/java/io/avaje/jsonb/core/CoreAdapterBuilder.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import java.lang.reflect.Type;
2323
import java.util.*;
24+
import java.util.concurrent.ConcurrentHashMap;
2425
import java.util.concurrent.locks.ReentrantLock;
2526

2627
/**
@@ -31,7 +32,7 @@ class CoreAdapterBuilder {
3132
private final DJsonb context;
3233
private final List<JsonAdapter.Factory> factories;
3334
private final ThreadLocal<LookupChain> lookupChainThreadLocal = new ThreadLocal<>();
34-
private final Map<Object, JsonAdapter<?>> adapterCache = new LinkedHashMap<>();
35+
private final Map<Object, JsonAdapter<?>> adapterCache = new ConcurrentHashMap<>();
3536
private final ReentrantLock lock = new ReentrantLock();
3637

3738
CoreAdapterBuilder(DJsonb context, List<JsonAdapter.Factory> userFactories, boolean mathAsString) {
@@ -51,16 +52,7 @@ class CoreAdapterBuilder {
5152
*/
5253
@SuppressWarnings("unchecked")
5354
<T> JsonAdapter<T> get(Object cacheKey) {
54-
lock.lock();
55-
try {
56-
JsonAdapter<?> result = adapterCache.get(cacheKey);
57-
if (result != null) {
58-
return (JsonAdapter<T>) result;
59-
}
60-
} finally {
61-
lock.unlock();
62-
}
63-
return null;
55+
return (JsonAdapter<T>) adapterCache.get(cacheKey);
6456
}
6557

6658
/**

0 commit comments

Comments
 (0)