Skip to content

Commit 6a6fbe2

Browse files
authored
Avoid race condition by using ConcurrentHashMap (helidon-io#2435)
Signed-off-by: tim.quinn@oracle.com <tim.quinn@oracle.com>
1 parent b1ddbe8 commit 6a6fbe2

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

microprofile/metrics/src/main/java/io/helidon/microprofile/metrics/InterceptorBase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@
2020
import java.lang.reflect.AnnotatedElement;
2121
import java.lang.reflect.Member;
2222
import java.util.Collections;
23-
import java.util.HashMap;
2423
import java.util.List;
2524
import java.util.Map;
2625
import java.util.Objects;
2726
import java.util.Optional;
2827
import java.util.TreeMap;
28+
import java.util.concurrent.ConcurrentHashMap;
2929
import java.util.function.Function;
3030

3131
import javax.enterprise.context.Dependent;
@@ -92,7 +92,7 @@ abstract class InterceptorBase<T extends Metric, A extends Annotation> {
9292
private final Function<A, String> nameFunction;
9393
private final Function<A, String[]> tagsFunction;
9494
private final Function<A, Boolean> isAbsoluteFunction;
95-
private final Map<AnnotatedElement, T> elementMetricMap = new HashMap<>();
95+
private final Map<AnnotatedElement, T> elementMetricMap = new ConcurrentHashMap<>();
9696
private final String metricTypeName;
9797
private final Class<T> metricClass;
9898
private final Map<String, String> universalTags; // Get global and app tags for later

0 commit comments

Comments
 (0)