From b0d721c9d0e679e234a35b3b603cdfc7a54eb59c Mon Sep 17 00:00:00 2001 From: "Aleksei.Cherepanov" Date: Fri, 21 May 2021 16:46:58 +0300 Subject: [PATCH] Fix synchronization in translation-result map #KT-27660 Fixed --- .../src/org/jetbrains/kotlin/incremental/IncrementalJsCache.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJsCache.kt b/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJsCache.kt index a968578dd44..b6e48c528a7 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJsCache.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJsCache.kt @@ -234,6 +234,7 @@ private class TranslationResultMap( override fun dumpValue(value: TranslationResultValue): String = "Metadata: ${value.metadata.md5()}, Binary AST: ${value.binaryAst.md5()}, InlineData: ${value.inlineData.md5()}" + @Synchronized fun put(sourceFile: File, newMetadata: ByteArray, newBinaryAst: ByteArray, newInlineData: ByteArray) { storage[pathConverter.toPath(sourceFile)] = TranslationResultValue(metadata = newMetadata, binaryAst = newBinaryAst, inlineData = newInlineData) @@ -245,6 +246,7 @@ private class TranslationResultMap( fun keys(): Collection = storage.keys.map { pathConverter.toFile(it) } + @Synchronized fun remove(sourceFile: File, changesCollector: ChangesCollector) { val path = pathConverter.toPath(sourceFile) val protoBytes = storage[path]!!.metadata