[vcs-log] add debug logging for log initialization and dispose

GitOrigin-RevId: 58444b985d1cd07d64d141d74976121cce4ae6c4
This commit is contained in:
Julia Beliaeva
2019-07-02 06:52:16 +03:00
committed by intellij-monorepo-bot
parent bcb2899403
commit cee45f2b7b
3 changed files with 10 additions and 0 deletions
@@ -23,6 +23,7 @@ import com.intellij.vcs.log.graph.PermanentGraph;
import com.intellij.vcs.log.ui.AbstractVcsLogUi;
import com.intellij.vcs.log.ui.VcsLogColorManagerImpl;
import com.intellij.vcs.log.ui.VcsLogUiImpl;
import com.intellij.vcs.log.util.VcsLogUtil;
import com.intellij.vcs.log.visible.VcsLogFiltererImpl;
import com.intellij.vcs.log.visible.VisiblePackRefresherImpl;
import com.intellij.vcs.log.visible.filters.VcsLogFilterObject;
@@ -187,6 +188,7 @@ public class VcsLogManager implements Disposable {
// disposing of VcsLogManager is done by manually executing dispose(@Nullable Runnable callback)
// the above method first disposes ui in EDT, than disposes everything else in background
LOG.assertTrue(!ApplicationManager.getApplication().isDispatchThread());
LOG.debug("Disposed Vcs Log for " + VcsLogUtil.getProvidersMapText(myLogData.getLogProviders()));
}
private class MyFatalErrorsHandler implements FatalErrorHandler {
@@ -35,6 +35,7 @@ import com.intellij.util.ui.UIUtil;
import com.intellij.vcs.log.VcsLogProvider;
import com.intellij.vcs.log.data.VcsLogData;
import com.intellij.vcs.log.ui.VcsLogUiImpl;
import com.intellij.vcs.log.util.VcsLogUtil;
import org.jetbrains.annotations.*;
import java.util.Arrays;
@@ -178,6 +179,7 @@ public class VcsProjectLog implements Disposable {
@CalledInBackground
public synchronized VcsLogManager getValue(@NotNull Map<VirtualFile, VcsLogProvider> logProviders) {
if (myValue == null) {
LOG.debug("Creating Vcs Log for " + VcsLogUtil.getProvidersMapText(logProviders));
VcsLogManager value = compute(logProviders);
myValue = value;
ApplicationManager.getApplication().invokeLater(() -> {
@@ -202,6 +204,7 @@ public class VcsProjectLog implements Disposable {
public synchronized void drop(@Nullable Runnable callback) {
if (myValue != null) {
LOG.debug("Disposing Vcs Log for " + VcsLogUtil.getProvidersMapText(myValue.getDataManager().getLogProviders()));
myMessageBus.syncPublisher(VCS_PROJECT_LOG_CHANGED).logDisposed(myValue);
myValue.dispose(callback);
myValue = null;
@@ -362,4 +362,9 @@ public class VcsLogUtil {
}
return (maxSize / 1_000_000) + "M";
}
@NotNull
public static String getProvidersMapText(@NotNull Map<VirtualFile, VcsLogProvider> providers) {
return "[" + StringUtil.join(providers.keySet(), file -> file.getPresentableUrl(), ", ") + "]";
}
}