From a90983ca6a5322b33afc8d23ca5c38d4d133a773 Mon Sep 17 00:00:00 2001 From: Pavel Punegov Date: Thu, 12 Jan 2023 10:39:43 +0000 Subject: [PATCH] [K/N][test] Sync PsiFactory creation CoreApplicationEnvironment.registerApplicationDynamicExtensionPoint should be guarded to ensure registration won't happen concurrently Merge-request: KT-MR-8251 Merged-by: Pavel Punegov --- .../support/group/ExtTestCaseGroupProvider.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/ExtTestCaseGroupProvider.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/ExtTestCaseGroupProvider.kt index 5a12b1a799e..e6fb8f41aeb 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/ExtTestCaseGroupProvider.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/ExtTestCaseGroupProvider.kt @@ -823,6 +823,8 @@ private class ExtTestDataFileStructureFactory(parentDisposable: Disposable) : Te } companion object { + private val lock = Object() + private fun createPsiFactory(parentDisposable: Disposable): KtPsiFactory { val configuration: CompilerConfiguration = KotlinTestUtils.newConfiguration() configuration.put(CommonConfigurationKeys.MODULE_NAME, "native-blackbox-test-patching-module") @@ -833,7 +835,12 @@ private class ExtTestDataFileStructureFactory(parentDisposable: Disposable) : Te configFiles = EnvironmentConfigFiles.METADATA_CONFIG_FILES ) - CoreApplicationEnvironment.registerApplicationDynamicExtensionPoint(TreeCopyHandler.EP_NAME.name, TreeCopyHandler::class.java) + synchronized(lock) { + CoreApplicationEnvironment.registerApplicationDynamicExtensionPoint( + TreeCopyHandler.EP_NAME.name, + TreeCopyHandler::class.java + ) + } val project = environment.project as MockProject project.registerService(PomModel::class.java, PomModelImpl::class.java)