diff --git a/platform/platform-tests/testSrc/com/intellij/util/messages/MessageBusTest.java b/platform/platform-tests/testSrc/com/intellij/util/messages/MessageBusTest.java index ecaf8c840772..1c2114fbc321 100644 --- a/platform/platform-tests/testSrc/com/intellij/util/messages/MessageBusTest.java +++ b/platform/platform-tests/testSrc/com/intellij/util/messages/MessageBusTest.java @@ -19,6 +19,7 @@ */ package com.intellij.util.messages; +import com.intellij.openapi.Disposable; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.text.StringUtil; @@ -365,4 +366,13 @@ public class MessageBusTest extends TestCase { myBus.syncPublisher(TOPIC1).t11(); assertEvents("root 11", "child 11", "root 12", "child 12"); } + + public void testTwoHandlersBothDisconnecting() { + Disposable disposable = Disposer.newDisposable(); + for (int i = 0; i < 2; i++) { + myBus.connect(disposable).subscribe(RUNNABLE_TOPIC, () -> Disposer.dispose(disposable)); + } + myBus.syncPublisher(RUNNABLE_TOPIC).run(); + assertTrue(Disposer.isDisposed(disposable)); + } } diff --git a/platform/util/src/com/intellij/util/messages/impl/MessageBusConnectionImpl.java b/platform/util/src/com/intellij/util/messages/impl/MessageBusConnectionImpl.java index bac709b9a1e1..6aed1576dee8 100644 --- a/platform/util/src/com/intellij/util/messages/impl/MessageBusConnectionImpl.java +++ b/platform/util/src/com/intellij/util/messages/impl/MessageBusConnectionImpl.java @@ -79,12 +79,9 @@ public class MessageBusConnectionImpl implements MessageBusConnection { @Override public void dispose() { - Queue jobs = myPendingMessages.get(); + myPendingMessages.get(); myPendingMessages.remove(); myBus.notifyConnectionTerminated(this); - if (!jobs.isEmpty()) { - LOG.error("Not delivered events in the queue: " + jobs); - } } @Override