User: rednesto Date: 17 Dec 23 12:19 Revision: fe53edc23f885e90e1cd69ff99b8232ba9d54d4c Summary: Fix minecraft-dev/mcdev-error-report#660 Fix message bus registration when NBT editor is already disposed TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=8909&personal=false Index: src/main/kotlin/nbt/editor/NbtFileEditorProvider.kt =================================================================== --- src/main/kotlin/nbt/editor/NbtFileEditorProvider.kt (revision 613d3f15545907f47f2c2c738b52cef49b3ef4f3) +++ src/main/kotlin/nbt/editor/NbtFileEditorProvider.kt (revision fe53edc23f885e90e1cd69ff99b8232ba9d54d4c) @@ -95,6 +95,7 @@ private val editorCheckedDisposable = Disposer.newCheckedDisposable() private val component = JPanel(BorderLayout()) private val tempUserData = mutableMapOf() + private var disposed = false init { val loading = JBLoadingPanel(null, this) @@ -150,6 +151,10 @@ CodeStyleManager.getInstance(project).reformat(psiFile, true) } + if (disposed) { + return + } + project.messageBus.connect(this).subscribe( AnActionListener.TOPIC, object : AnActionListener { @@ -217,7 +222,9 @@ editor.exec { removePropertyChangeListener(listener) } } - override fun dispose() {} + override fun dispose() { + disposed = true + } override fun getStructureViewBuilder() = editor.exec { structureViewBuilder } override fun equals(other: Any?) = other is NbtFileEditor && other.component == this.component