dispose more message buses in lite environments (IDEA-CR-6909)

This commit is contained in:
peter
2015-11-19 21:15:32 +01:00
parent d3b7d35d20
commit 76abfbecc0
5 changed files with 13 additions and 15 deletions
@@ -69,7 +69,6 @@ import com.intellij.psi.stubs.StubTreeLoader;
import com.intellij.util.Consumer;
import com.intellij.util.Function;
import com.intellij.util.Processor;
import com.intellij.util.messages.MessageBusFactory;
import org.jetbrains.annotations.NotNull;
import org.picocontainer.MutablePicoContainer;
@@ -112,7 +111,7 @@ public class CoreApplicationEnvironment {
}, null));
VirtualFileSystem[] fs = {myLocalFileSystem, myJarFileSystem};
VirtualFileManagerImpl virtualFileManager = new VirtualFileManagerImpl(fs, MessageBusFactory.newMessageBus(myApplication));
VirtualFileManagerImpl virtualFileManager = new VirtualFileManagerImpl(fs, myApplication.getMessageBus());
registerComponentInstance(appContainer, VirtualFileManager.class, virtualFileManager);
registerApplicationService(EncodingManager.class, new CoreEncodingRegistry());
@@ -41,7 +41,6 @@ import com.intellij.psi.util.CachedValuesManager;
import com.intellij.psi.util.PsiModificationTracker;
import com.intellij.util.CachedValuesManagerImpl;
import com.intellij.util.messages.MessageBus;
import com.intellij.util.messages.MessageBusFactory;
import org.jetbrains.annotations.NotNull;
import org.picocontainer.PicoContainer;
@@ -62,7 +61,7 @@ public class CoreProjectEnvironment {
preregisterServices();
myFileIndexFacade = createFileIndexFacade();
myMessageBus = MessageBusFactory.newMessageBus("CoreProjectEnvironment");
myMessageBus = myProject.getMessageBus();
PsiModificationTrackerImpl modificationTracker = new PsiModificationTrackerImpl(myProject);
myProject.registerService(PsiModificationTracker.class, modificationTracker);
@@ -31,15 +31,6 @@ import org.jetbrains.annotations.NotNull;
* Time: 1:29 PM
*/
public class MessageBusUtil {
public static <T> void runOnSyncPublisher(final Project project, final Topic<T> topic, final Consumer<T> listener) {
final Application application = ApplicationManager.getApplication();
final Runnable runnable = createPublisherRunnable(project, topic, listener);
if (application.isDispatchThread()) {
runnable.run();
} else {
application.runReadAction(runnable);
}
}
private static <T> Runnable createPublisherRunnable(final Project project, final Topic<T> topic, final Consumer<T> listener) {
return new Runnable() {
@@ -89,6 +89,16 @@ public class MessageBusTest extends TestCase {
myLog = new ArrayList<>();
}
@Override
protected void tearDown() throws Exception {
try {
myBus.dispose();
}
finally {
super.tearDown();
}
}
public void testNoListenersSubscribed() {
myBus.syncPublisher(TOPIC1).t11();
assertEvents();
@@ -54,7 +54,6 @@ import com.intellij.psi.util.CachedValuesManager;
import com.intellij.util.CachedValuesManagerImpl;
import com.intellij.util.Function;
import com.intellij.util.messages.MessageBus;
import com.intellij.util.messages.MessageBusFactory;
import junit.framework.TestCase;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -111,7 +110,7 @@ public abstract class ParsingTestCase extends PlatformLiteFixture {
myPsiManager = new MockPsiManager(myProject);
myFileFactory = new PsiFileFactoryImpl(myPsiManager);
MutablePicoContainer appContainer = getApplication().getPicoContainer();
registerComponentInstance(appContainer, MessageBus.class, MessageBusFactory.newMessageBus(getApplication()));
registerComponentInstance(appContainer, MessageBus.class, getApplication().getMessageBus());
registerComponentInstance(appContainer, SchemesManagerFactory.class, new MockSchemesManagerFactory());
final MockEditorFactory editorFactory = new MockEditorFactory();
registerComponentInstance(appContainer, EditorFactory.class, editorFactory);