Skip to content

Commit 3d53a5d

Browse files
committed
Resolve application library named XXX already exists exception
java.lang.IllegalStateException: application library named Erlang for Elixir 24 already exists at com.intellij.workspaceModel.ide.impl.legacyBridge.library.GlobalLibraryTableDelegate.createLibrary$intellij_platform_projectModel_impl(GlobalLibraryTableDelegate.kt:155) at com.intellij.workspaceModel.ide.impl.legacyBridge.library.GlobalLibraryTableBridgeImpl.createLibrary(GlobalLibraryTableBridgeImpl.kt:61) at org.elixir_lang.facet.sdks.Configurable$addListeners$listener$1.sdkAdded$lambda$1$0(Configurable.kt:126)
1 parent 0763a95 commit 3d53a5d

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/org/elixir_lang/facet/sdks/Configurable.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,9 @@ abstract class Configurable: SearchableConfigurable, com.intellij.openapi.option
123123
override fun sdkAdded(sdk: Sdk) {
124124
LibraryTablesRegistrar.getInstance().libraryTable.let { libraryTable ->
125125
ApplicationManager.getApplication().runWriteAction {
126-
libraryTable.createLibrary(sdk.name).modifiableModel.apply {
127-
addRoots(sdk)
126+
val library = libraryTable.getLibraryByName(sdk.name) ?: libraryTable.createLibrary(sdk.name)
127+
library.modifiableModel.apply {
128+
replaceRoots(sdk)
128129
commit()
129130
}
130131
}
@@ -203,7 +204,7 @@ abstract class Configurable: SearchableConfigurable, com.intellij.openapi.option
203204

204205
private fun Library.ModifiableModel.addRoots(roots: Array<VirtualFile>) =
205206
roots.forEach {
206-
addRoot(it, com.intellij.openapi.roots.OrderRootType.CLASSES)
207+
addRoot(it, OrderRootType.CLASSES)
207208
}
208209

209210
private fun Library.ModifiableModel.clearRoots() {

0 commit comments

Comments
 (0)