From 1803d2bed44e3538868b58e0cc670671edb16202 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Mon, 1 Oct 2018 14:54:11 +0300 Subject: [PATCH] Use mutable lists before deserialization of project structure The problem is that we perform xml deserialization using intellij mechanism which tries to clear target object if it isn't unmodifiable (see CollectionBinding.isMutableCollection). This check fails for kotlin.EmptyList (emptyList()) which then cause exception #KT-27321 Fixed Original commit: e74469fdfc035042a2a1b647a1eedb4c65229a16 --- .../src/org/jetbrains/kotlin/config/facetSerialization.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt b/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt index d0480dfbcc5..6350b21a315 100644 --- a/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt +++ b/jps/jps-common/src/org/jetbrains/kotlin/config/facetSerialization.kt @@ -138,7 +138,10 @@ private fun readV2AndLaterConfig(element: Element): KotlinFacetSettings { XmlSerializer.deserializeInto(compilerSettings!!, it) } element.getChild("compilerArguments")?.let { - compilerArguments = targetPlatform.createArguments { freeArgs = ArrayList() } + compilerArguments = targetPlatform.createArguments { + freeArgs = mutableListOf() + internalArguments = mutableListOf() + } XmlSerializer.deserializeInto(compilerArguments!!, it) compilerArguments!!.detectVersionAutoAdvance() }