mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PlatformProjectOpenProcessor: wrap project opening into a transaction (IDEA-214504)
GitOrigin-RevId: 85b83419498fec62c049a7885233ab4644212e95
This commit is contained in:
committed by
intellij-monorepo-bot
parent
007068ba42
commit
d3b269f251
@@ -9,6 +9,7 @@ import com.intellij.ide.impl.ProjectUtil;
|
||||
import com.intellij.ide.util.PsiNavigationSupport;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.TransactionGuard;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
|
||||
import com.intellij.openapi.module.Module;
|
||||
@@ -198,10 +199,12 @@ public class PlatformProjectOpenProcessor extends ProjectOpenProcessor implement
|
||||
boolean finalDummyProject = dummyProject;
|
||||
String finalDummyProjectName = dummyProjectName;
|
||||
Runnable process = () -> refResult.set(prepareAndOpenProject(virtualFile, options, finalBaseDir, finalDummyProject, finalDummyProjectName));
|
||||
boolean progressCompleted = ProgressManager.getInstance().runProcessWithProgressSynchronously(process, "Loading Project...", true, null, frame.getComponent());
|
||||
if (progressCompleted) {
|
||||
result = refResult.get();
|
||||
}
|
||||
TransactionGuard.getInstance().submitTransactionAndWait(() -> {
|
||||
boolean progressCompleted = ProgressManager.getInstance().runProcessWithProgressSynchronously(process, "Loading Project...", true, null, frame.getComponent());
|
||||
if (!progressCompleted) {
|
||||
refResult.set(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (result == null || result.first == null) {
|
||||
|
||||
Reference in New Issue
Block a user