Git: fix process canceled exception on project reopening

This commit is contained in:
irengrig
2010-12-23 17:33:50 +03:00
parent 9d2f3a5557
commit 877e4f186e
2 changed files with 21 additions and 1 deletions
@@ -15,9 +15,14 @@
*/
package com.intellij.ui;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.impl.ApplicationInfoImpl;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Condition;
import com.intellij.util.ImageLoader;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.awt.*;
@@ -45,4 +50,18 @@ public class AppUIUtil {
public static void updateDialogIcon(final JDialog dialog) {
UIUtil.updateDialogIcon(dialog, getAppIconImages());
}
public static void invokeLaterIfProjectAlive(@NotNull final Project project, @NotNull final Runnable runnable) {
final Application application = ApplicationManager.getApplication();
if (application.isDispatchThread()) {
runnable.run();
} else {
application.invokeLater(runnable, new Condition() {
@Override
public boolean value(Object o) {
return (! project.isOpen()) || project.isDisposed();
}
});
}
}
}
@@ -25,6 +25,7 @@ import com.intellij.openapi.vcs.VcsVFSListener;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileEvent;
import com.intellij.ui.AppUIUtil;
import com.intellij.util.ui.UIUtil;
import com.intellij.vcsUtil.VcsUtil;
import git4idea.GitUtil;
@@ -150,7 +151,7 @@ public class GitVFSListener extends VcsVFSListener {
}
}
addedFiles.retainAll(retainedFiles);
UIUtil.invokeLaterIfNeeded(new Runnable() {
AppUIUtil.invokeLaterIfProjectAlive(myProject, new Runnable() {
@Override
public void run() {
originalExecuteAdd(addedFiles, copiedFiles);