From a74f28984480fa9a68caefaf8d5f862f2e39af55 Mon Sep 17 00:00:00 2001 From: Aleksandr Kutashov Date: Thu, 18 Aug 2022 12:53:55 +0300 Subject: [PATCH] KT-48822: Fixes ConcurrentModificationException in AsmTypes AsmTypes#getType() could be called from multiple threads, which causes CME sometimes. Should guard TYPES_MAP modification. --- .../src/org/jetbrains/kotlin/resolve/jvm/AsmTypes.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/backend.common.jvm/src/org/jetbrains/kotlin/resolve/jvm/AsmTypes.java b/compiler/backend.common.jvm/src/org/jetbrains/kotlin/resolve/jvm/AsmTypes.java index 9aa3dc97f62..8e302fbe54e 100644 --- a/compiler/backend.common.jvm/src/org/jetbrains/kotlin/resolve/jvm/AsmTypes.java +++ b/compiler/backend.common.jvm/src/org/jetbrains/kotlin/resolve/jvm/AsmTypes.java @@ -14,9 +14,10 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class AsmTypes { - private static final Map, Type> TYPES_MAP = new HashMap<>(); + private static final Map, Type> TYPES_MAP = new ConcurrentHashMap<>(); public static final Type OBJECT_TYPE = getType(Object.class); public static final Type JAVA_STRING_TYPE = getType(String.class);