From 123e2f546c9f8718d98208177ddb83563c64de6c Mon Sep 17 00:00:00 2001 From: Frank van der Heijden Date: Mon, 28 Jun 2021 22:28:10 +0200 Subject: [PATCH] Use ConcurrentHashMap instead of HashMap --- .../java/dev/frankheijden/minecraftreflection/Reflection.java | 4 ++-- .../minecraftreflection/cache/NamedReflectionCacheTree.java | 4 ++-- .../minecraftreflection/cache/ReflectionCache.java | 4 ++-- .../minecraftreflection/cache/ReflectionCacheTree.java | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/dev/frankheijden/minecraftreflection/Reflection.java b/src/main/java/dev/frankheijden/minecraftreflection/Reflection.java index 855b959..c670237 100644 --- a/src/main/java/dev/frankheijden/minecraftreflection/Reflection.java +++ b/src/main/java/dev/frankheijden/minecraftreflection/Reflection.java @@ -9,8 +9,8 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class Reflection { @@ -21,7 +21,7 @@ public class Reflection { public Reflection(Class clazz) { this.clazz = clazz; - this.fieldMap = new HashMap<>(); + this.fieldMap = new ConcurrentHashMap<>(); this.methodTree = new NamedReflectionCacheTree<>(); this.constructorTree = new ReflectionCacheTree<>(null); } diff --git a/src/main/java/dev/frankheijden/minecraftreflection/cache/NamedReflectionCacheTree.java b/src/main/java/dev/frankheijden/minecraftreflection/cache/NamedReflectionCacheTree.java index a33e996..a990738 100644 --- a/src/main/java/dev/frankheijden/minecraftreflection/cache/NamedReflectionCacheTree.java +++ b/src/main/java/dev/frankheijden/minecraftreflection/cache/NamedReflectionCacheTree.java @@ -1,13 +1,13 @@ package dev.frankheijden.minecraftreflection.cache; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.function.Supplier; public class NamedReflectionCacheTree { - private final Map> treeMap = new HashMap<>(); + private final Map> treeMap = new ConcurrentHashMap<>(); public T computeIfAbsent(String name, Class[] parameters, Function[], ? extends T> mappingFunction) { return treeMap.computeIfAbsent(name, k -> new ReflectionCacheTree<>(null)).computeIfAbsent(parameters, mappingFunction); diff --git a/src/main/java/dev/frankheijden/minecraftreflection/cache/ReflectionCache.java b/src/main/java/dev/frankheijden/minecraftreflection/cache/ReflectionCache.java index 9d52332..8f7fdc5 100644 --- a/src/main/java/dev/frankheijden/minecraftreflection/cache/ReflectionCache.java +++ b/src/main/java/dev/frankheijden/minecraftreflection/cache/ReflectionCache.java @@ -2,12 +2,12 @@ package dev.frankheijden.minecraftreflection.cache; import dev.frankheijden.minecraftreflection.MinecraftReflection; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class ReflectionCache { - private static final Map, MinecraftReflection> cachedReflections = new HashMap<>(); + private static final Map, MinecraftReflection> cachedReflections = new ConcurrentHashMap<>(); public static Map, MinecraftReflection> getCachedReflections() { return cachedReflections; diff --git a/src/main/java/dev/frankheijden/minecraftreflection/cache/ReflectionCacheTree.java b/src/main/java/dev/frankheijden/minecraftreflection/cache/ReflectionCacheTree.java index d53c2f5..1fb45a7 100644 --- a/src/main/java/dev/frankheijden/minecraftreflection/cache/ReflectionCacheTree.java +++ b/src/main/java/dev/frankheijden/minecraftreflection/cache/ReflectionCacheTree.java @@ -1,7 +1,7 @@ package dev.frankheijden.minecraftreflection.cache; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.function.Supplier; @@ -10,7 +10,7 @@ public class ReflectionCacheTree { public static final Class[] EMPTY_CLASS_ARRAY = new Class[0]; private T value; - private final Map, ReflectionCacheTree> children = new HashMap<>(); + private final Map, ReflectionCacheTree> children = new ConcurrentHashMap<>(); public ReflectionCacheTree(T value) { this.value = value;