Fix script config saving to file attributes
also make reading from file attribute more robust
This commit is contained in:
+1
-2
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.idea.core.script
|
||||
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.kotlin.idea.core.util.*
|
||||
import org.jetbrains.kotlin.scripting.resolve.ScriptCompilationConfigurationWrapper
|
||||
import java.io.*
|
||||
import kotlin.script.experimental.api.ScriptCompilationConfiguration
|
||||
import kotlin.script.experimental.dependencies.ScriptDependencies
|
||||
@@ -61,7 +60,7 @@ var VirtualFile.scriptCompilationConfiguration: ScriptCompilationConfiguration?
|
||||
write = {
|
||||
val os = ByteArrayOutputStream()
|
||||
ObjectOutputStream(os).use { oos ->
|
||||
oos.writeObject((it as? ScriptCompilationConfigurationWrapper.FromCompilationConfiguration)?.configuration)
|
||||
oos.writeObject(it)
|
||||
}
|
||||
val bytes = os.toByteArray()
|
||||
writeInt(bytes.size)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.core.util
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.util.NullableLazyKey
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.openapi.vfs.VirtualFileWithId
|
||||
@@ -44,8 +45,15 @@ abstract class FileAttributeProperty<T : Any>(name: String, version: Int, privat
|
||||
if (file !is VirtualFileWithId || !file.isValid) return null
|
||||
|
||||
return attribute.readAttribute(file)?.use { input ->
|
||||
input.readNullable {
|
||||
readValue(input)
|
||||
try {
|
||||
input.readNullable {
|
||||
readValue(input)
|
||||
}
|
||||
} catch (e: Throwable) {
|
||||
Logger.getInstance("#org.jetbrains.kotlin.idea.core.util.FileAttributeProperty")
|
||||
.warn("Unable to read attribute from $file", e)
|
||||
file.putUserData(cache, null)
|
||||
null
|
||||
}
|
||||
} ?: default
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user