From e2bb2380eee7b5dfa5959a4c53cb63dcc6f86aa7 Mon Sep 17 00:00:00 2001 From: "Vladislav.Tankov" Date: Thu, 7 May 2020 23:59:25 +0300 Subject: [PATCH] [Grazie] Fix accidental removal of language modules After platform-team intellij-wide refactoring there was bug due to which Grazie was removing not only old versions of language-modules, but also new one. GitOrigin-RevId: 287a9d02522603be2202aca27cb88c85525f7c49 --- .../src/main/kotlin/com/intellij/grazie/GrazieDynamic.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/grazie/src/main/kotlin/com/intellij/grazie/GrazieDynamic.kt b/plugins/grazie/src/main/kotlin/com/intellij/grazie/GrazieDynamic.kt index ad9fbd0c0cb0..a3dcc875f8a8 100644 --- a/plugins/grazie/src/main/kotlin/com/intellij/grazie/GrazieDynamic.kt +++ b/plugins/grazie/src/main/kotlin/com/intellij/grazie/GrazieDynamic.kt @@ -4,6 +4,8 @@ package com.intellij.grazie import com.intellij.grazie.jlanguage.Lang import com.intellij.grazie.remote.GrazieRemote import com.intellij.openapi.application.PathManager +import com.intellij.util.io.delete +import com.intellij.util.io.isFile import com.intellij.util.lang.UrlClassLoader import org.languagetool.language.Language import org.languagetool.language.Languages @@ -16,9 +18,14 @@ import java.util.* internal object GrazieDynamic { private val myDynClassLoaders by lazy { - for (file in dynamicFolder.toFile().walk().filter { file -> file.isFile && Lang.values().all { it.remote.file != file } }) { + val oldFiles = Files.walk(dynamicFolder).filter { file -> + file.isFile() && Lang.values().all { it.remote.file.toAbsolutePath() != file.toAbsolutePath() } + } + + for (file in oldFiles) { file.delete() } + hashSetOf( UrlClassLoader.build() .parent(GraziePlugin.classLoader)