diff --git a/webtester-core/src/main/java/info/novatec/testit/webtester/internal/implementation/pagefragments/PageFragmentImplementation.java b/webtester-core/src/main/java/info/novatec/testit/webtester/internal/implementation/pagefragments/PageFragmentImplementation.java index e23f177f..6757ec14 100644 --- a/webtester-core/src/main/java/info/novatec/testit/webtester/internal/implementation/pagefragments/PageFragmentImplementation.java +++ b/webtester-core/src/main/java/info/novatec/testit/webtester/internal/implementation/pagefragments/PageFragmentImplementation.java @@ -6,8 +6,8 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import java.lang.reflect.InvocationHandler; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import net.bytebuddy.ByteBuddy; import net.bytebuddy.ClassFileVersion; @@ -32,12 +32,12 @@ final class PageFragmentImplementation { private static final Map, Class>> CACHE = - new HashMap<>(); + new ConcurrentHashMap<>(); static Class getOrCreate(Class pageFragmentType) { ClassLoader classLoader = pageFragmentType.getClassLoader(); Map, Class> implementationMap = - CACHE.computeIfAbsent(classLoader, cl -> new HashMap<>()); + CACHE.computeIfAbsent(classLoader, cl -> new ConcurrentHashMap<>()); return implementationMap.computeIfAbsent(pageFragmentType, PageFragmentImplementation::create); } diff --git a/webtester-core/src/main/java/info/novatec/testit/webtester/internal/implementation/pages/PageImplementation.java b/webtester-core/src/main/java/info/novatec/testit/webtester/internal/implementation/pages/PageImplementation.java index bab0f7e9..116a09a3 100644 --- a/webtester-core/src/main/java/info/novatec/testit/webtester/internal/implementation/pages/PageImplementation.java +++ b/webtester-core/src/main/java/info/novatec/testit/webtester/internal/implementation/pages/PageImplementation.java @@ -6,8 +6,8 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import java.lang.reflect.InvocationHandler; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import net.bytebuddy.ByteBuddy; import net.bytebuddy.ClassFileVersion; @@ -27,12 +27,12 @@ final class PageImplementation { - private static final Map, Class>> CACHE = new HashMap<>(); + private static final Map, Class>> CACHE = new ConcurrentHashMap<>(); static Class getOrCreate(Class pageType) { ClassLoader classLoader = pageType.getClassLoader(); Map, Class> implementationMap = - CACHE.computeIfAbsent(classLoader, cl -> new HashMap<>()); + CACHE.computeIfAbsent(classLoader, cl -> new ConcurrentHashMap<>()); return implementationMap.computeIfAbsent(pageType, PageImplementation::create); } diff --git a/webtester-support-junit5/src/main/java/info/novatec/testit/webtester/junit5/internal/TestClassAnalyzer.java b/webtester-support-junit5/src/main/java/info/novatec/testit/webtester/junit5/internal/TestClassAnalyzer.java index b651e658..15e36f68 100644 --- a/webtester-support-junit5/src/main/java/info/novatec/testit/webtester/junit5/internal/TestClassAnalyzer.java +++ b/webtester-support-junit5/src/main/java/info/novatec/testit/webtester/junit5/internal/TestClassAnalyzer.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import info.novatec.testit.webtester.browser.Browser; import info.novatec.testit.webtester.events.EventListener; @@ -57,7 +58,7 @@ private List getBrowserFields() { private Map getNamedBrowserFieldsMap(List browserFields) { Set uniqueNames = new HashSet<>(); - Map nameToFieldMap = new HashMap<>(); + Map nameToFieldMap = new ConcurrentHashMap<>(); browserFields.forEach(field -> { String browserName = field.getAnnotation(Managed.class).value(); if (uniqueNames.contains(browserName)) {