diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index e8c0501301bb..b2b776dfbe02 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -69,6 +69,7 @@ import com.intellij.util.Alarm; import com.intellij.util.IJSwingUtilities; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.HashMap; +import com.intellij.util.messages.MessageBusConnection; import com.intellij.util.text.CharArrayUtil; import com.intellij.util.ui.ButtonlessScrollBarUI; import com.intellij.util.ui.EmptyClipboardOwner; @@ -173,6 +174,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private final SoftWrapModelImpl mySoftWrapModel; private static final RepaintCursorCommand ourCaretBlinkingCommand; + private MessageBusConnection myConnection; private int myMouseSelectionState = MOUSE_SELECTION_STATE_NONE; private FoldRegion myMouseSelectedRegion = null; @@ -273,7 +275,8 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myEditorDocumentAdapter = new EditorDocumentAdapter(); if (project != null) { - project.getMessageBus().connect().subscribe(DocumentBulkUpdateListener.TOPIC, new EditorDocumentBulkUpdateAdapter()); + myConnection = project.getMessageBus().connect(); + myConnection.subscribe(DocumentBulkUpdateListener.TOPIC, new EditorDocumentBulkUpdateAdapter()); } myMouseMotionListeners = ContainerUtil.createEmptyCOWList(); @@ -603,6 +606,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi clearCaretThread(); myFocusListeners.clear(); + + if (myConnection != null) { + myConnection.disconnect(); + } } private void clearCaretThread() {