dispose FileManager after Usage view because the latter needs the former during its disposal (EA-133552 - assert: FileManagerImpl.dispatchPendingEvents)

This commit is contained in:
Alexey Kudravtsev
2018-12-17 13:48:32 +03:00
parent 469b139283
commit e769068f5c
@@ -12,6 +12,8 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.*;
import com.intellij.openapi.wm.IdeFocusManager;
import com.intellij.psi.PsiManager;
import com.intellij.psi.impl.PsiManagerEx;
import com.intellij.ui.components.panels.NonOpaquePanel;
import com.intellij.ui.content.*;
import com.intellij.util.EventDispatcher;
@@ -25,8 +27,8 @@ import javax.swing.*;
import java.awt.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.*;
import java.util.List;
import java.util.*;
/**
* @author Anton Katilin
@@ -61,7 +63,8 @@ public class ContentManagerImpl implements ContentManager, PropertyChangeListene
myUI = contentUI;
myUI.setManager(this);
Disposer.register(project, this);
// register on FileManager because before Content disposal the UsageView is disposed before which virtual file pointers should be externalized for which they need to be restored for which com.intellij.psi.impl.smartPointers.SelfElementInfo.restoreFileFromVirtual() must be able to work for which the findFile() must access filemanager for which it must be alive
Disposer.register(((PsiManagerEx)PsiManager.getInstance(project)).getFileManager(), this);
Disposer.register(this, contentUI);
}