diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/pluginUtils.kt b/compiler/util/src/org/jetbrains/kotlin/utils/pluginUtils.kt index f20432cf4f9..2b0234036f7 100644 --- a/compiler/util/src/org/jetbrains/kotlin/utils/pluginUtils.kt +++ b/compiler/util/src/org/jetbrains/kotlin/utils/pluginUtils.kt @@ -18,6 +18,7 @@ package org.jetbrains.kotlin.utils import java.io.ByteArrayInputStream import java.io.ObjectInputStream +import java.nio.charset.StandardCharsets import java.util.* fun decodePluginOptions(options: String): Map> { @@ -36,7 +37,10 @@ fun decodePluginOptions(options: String): Map> { val values = mutableListOf() repeat(valueCount) { - values += ois.readUTF() + val size = ois.readInt() + val byteArray = ByteArray(size) + ois.readFully(byteArray) + values += String(byteArray, StandardCharsets.UTF_8) } map[key] = values diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/subpluginUtils.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/subpluginUtils.kt index 57668f8be11..60bb6379f7f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/subpluginUtils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/subpluginUtils.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.gradle.tasks.CompilerPluginOptions import java.io.ByteArrayOutputStream import java.io.File import java.io.ObjectOutputStream +import java.nio.charset.StandardCharsets import java.util.* fun encodePluginOptions(options: Map>): String { @@ -35,7 +36,9 @@ fun encodePluginOptions(options: Map>): String { oos.writeInt(values.size) for (value in values) { - oos.writeUTF(value) + val valueBytes = value.toByteArray(StandardCharsets.UTF_8) + oos.writeInt(valueBytes.size) + oos.write(valueBytes) } }